babel CLI kopiert nonjs Dateien

88

Ich führe einen babel cli Befehl aus

babel src --out-dir lib

So kopieren Sie die es6-Skripte von src in lib. Es werden jedoch keine CSS / SCSS-Dateien kopiert, die ich im Ordner src / habe. Gibt es eine Möglichkeit, sie auch kopieren zu lassen?

yangli1990
quelle
Babels Funktion ist die Verarbeitung von jsDateien. Verwenden Sie cpzum Kopieren. Besser noch, mach einen Schluck.
Amadan
17
stimme nicht zu 100% zu, babel sollte Funktionen zum Verschieben von Nicht-JS-Dateien enthalten, da dies für> 50% der Anwendungsfälle erforderlich ist
Alexander Mills

Antworten:

172

Babel hat die Option Dateien kopieren :

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

Hinweis: Es ist wahr, dass Babels Hauptzweck darin besteht, Javascript-Dateien zu verarbeiten, aber die große Tool-Suite von Babel macht es heutzutage oft unnötig, komplexere Build-Script-Setups als gulpund gleichermaßen zu verwenden. Ein Setup ohne Schluck könnte dies hinzufügen zu 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
quelle
1
Dies funktionierte fast, außer dass es keine JSX-Datei kopierte: /
Alexander Mills
Könnte es sein, dass Sie die Reaktionsvoreinstellung nicht hinzugefügt haben?
Emil Ingerslev
Nun, wenn die Reaktionsvoreinstellung nicht installiert ist, sollte sie die Datei trotzdem verschieben, oder? :) es hat auch nicht geklappt, ich habe ein Problem bei babel eingereicht, sonst hat das funktioniert und ich habe upvoted :)
Alexander Mills
Ja, ich denke schon. Es wurde festgestellt, dass das Änderungsprotokoll ( github.com/babel/babel/blob/master/CHANGELOG.md ) einen Fehler enthält, der in Version 5.8.13-5.8.20 behoben wurde: Fehler behoben, bei dem Dateien, die babel kompilieren kann, nicht behoben wurden wird geschrieben, wenn es mit dem Flag --copy-files ignoriert wird.
Emil Ingerslev
7

Ich habe einen Weg gefunden, dies mit dem ncp-Modul zu tun

npm install ncp

Dieses Modul ist im Grunde wie ein CP, außer dass es funktioniert

Dies ist kein globales Modul. Um dies auszuführen, verwenden wir es

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
yangli1990
quelle