babel CLI copia i file nonjs


90

Sto eseguendo un comando babel cli

babel src --out-dir lib

Per copiare gli script es6 da src a lib. Tuttavia, non copierà i file css / scss che ho nella cartella src /. C'è un modo per fargli copiare anche loro?


La funzione di Babel sta elaborando i jsfile. Utilizzare cpper la copia. Meglio ancora, crea un gulpfile.
Amadan

17
non sono d'accordo al 100%, babel dovrebbe includere funzionalità per lo spostamento di file non js poiché questa è una funzionalità necessaria per> 50% dei casi d'uso
Alexander Mills

Risposte:


177

Babel ha l' opzione di copia dei file per questo:

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

Nota: è vero che lo scopo principale di babels è elaborare i file javascript, ma la grande suite di strumenti di babel oggigiorno spesso non rende necessario eseguire configurazioni di script di build più complesse come gulpe simili. Una configurazione senza gulp potrebbe aggiungere questo a 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
ha funzionato, quasi, tranne che non ha copiato un file jsx: /
Alexander Mills

Potrebbe essere che non hai aggiunto il preset React?
Emil Ingerslev

beh, se il preset Reac non è installato dovrebbe comunque spostare il file giusto? :) non ha fatto nessuno dei due, ho presentato un problema con Babel, altrimenti ha funzionato e ho votato positivamente :)
Alexander Mills

Sì, credo di sì. Trovato che il registro delle modifiche ( github.com/babel/babel/blob/master/CHANGELOG.md ) afferma che un bug su questo è stato risolto nella versione 5.8.13-5.8.20: Risolto bug in cui i file che babel può compilare non erano viene scritto quando viene ignorato con il flag --copy-files.
Emil Ingerslev

7

Ho trovato un modo per farlo utilizzando il modulo ncp

npm install ncp

Questo modulo è fondamentalmente come un cp tranne per il fatto che funziona

Questo non è un modulo globale, quindi per eseguirlo usiamo

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.