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?


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"
    ]
  }
}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.