babel CLI kopiuje pliki nonjs

90

Uruchamiam polecenie Babel CLI

babel src --out-dir lib

Aby skopiować skrypty es6 z src do lib. Jednak nie skopiuje plików css / scss, które mam w folderze src /. Czy istnieje sposób, aby je również kopiować?

yangli1990
źródło
Funkcją Babel jest przetwarzanie jsplików. Służy cpdo kopiowania. Jeszcze lepiej, zrób gulpfile.
Amadan
17
nie zgadzam się w 100%, babel powinien zawierać funkcję przenoszenia plików innych niż js, ponieważ jest to funkcja niezbędna w> 50% przypadków użycia
Alexander Mills

Odpowiedzi:

176

Babel ma do tego opcję kopiowania plików :

babel src --out-dir lib --copy-files

Uwaga: Prawdą jest, że głównym celem babels jest przetwarzanie plików javascript, ale duży zestaw narzędzi Babel w dzisiejszych czasach często sprawia, że ​​nie ma potrzeby wybierania bardziej złożonych konfiguracji skryptów kompilacji, takich jak gulpi podobne. Bezglutenowa konfiguracja może dodać to do packages.json:

{
  ...
  "devDependencies": {
    "babel": "*",
    "babel-cli": "^6.4.0",
    "babel-preset-es2015": "^6.3.13"
  },
  "scripts": {
    "watch": "babel --watch src --out-dir lib --source-maps inline --copy-files",
    "build": "babel src --out-dir lib --source-maps inline --copy-files" 
  },
  "babel": {
    "presets": [
      "es2015"
    ]
  }
}
Emil Ingerslev
źródło
1
to zadziałało prawie, z wyjątkiem tego, że nie skopiowało pliku jsx: /
Alexander Mills
Czy to możliwe, że nie dodałeś presetu reagowania?
Emil Ingerslev
cóż, jeśli preset reagowania nie jest zainstalowany, to nadal powinien przenieść plik, prawda? :) nie udało się, zgłosiłem problem z babel, w przeciwnym razie to zadziałało i zagłosowałem za :)
Alexander Mills
Tak, chyba tak. Okazało się, że dziennik zmian ( github.com/babel/babel/blob/master/CHANGELOG.md ) zawiera błąd dotyczący tego został naprawiony w wersji 5.8.13-5.8.20: Napraw błąd, w którym pliki, które babel może skompilować, nie były jest zapisywany, gdy jest ignorowany z flagą --copy-files.
Emil Ingerslev
7

Znalazłem sposób, aby to zrobić, używając modułu ncp

npm install ncp

Ten moduł jest w zasadzie podobny do cp, z wyjątkiem tego, że działa

To nie jest moduł globalny, więc do jego uruchomienia używamy

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
yangli1990
źródło