Babel CLI copia archivos nonjs


90

Estoy ejecutando un comando babel cli

babel src --out-dir lib

Para copiar los scripts es6 de src a lib. Sin embargo, no copiará los archivos css / scss que tengo en la carpeta src /. ¿Hay alguna forma de hacer que los copie también?


La función de Babel es procesar jsarchivos. Úselo cppara copiar. Mejor aún, cree un archivo gulp.
Amadan

17
en desacuerdo 100%, babel debería incluir funcionalidad para mover archivos que no sean js, ya que esta es una funcionalidad necesaria para> 50% de los casos de uso
Alexander Mills

Respuestas:


176

Babel tiene la opción de copiar archivos para esto:

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

Nota: Es cierto que el propósito principal de babel es procesar archivos javascript, pero el gran conjunto de herramientas de babel en la actualidad a menudo hace que sea innecesario optar por configuraciones de scripts de compilación más complejas como gulpy por igual. Una configuración sin tragos podría agregar esto 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
esto funcionó, casi, excepto que no copió un archivo jsx: /
Alexander Mills

¿Podría ser que no ha agregado el preajuste de reacción?
Emil Ingerslev

Bueno, si el preajuste de reacción no está instalado, debería mover el archivo, ¿verdad? :) No hizo ninguna de las dos cosas, presenté un problema con babel, de lo contrario, esto funcionó y voté a favor :)
Alexander Mills

Sí, yo supongo que sí. Descubrí que el registro de cambios ( github.com/babel/babel/blob/master/CHANGELOG.md ) indica que un error al respecto se corrigió en la versión 5.8.13-5.8.20: Se corrigió el error donde los archivos que babel puede compilar no estaban se escribe cuando se ignora con el indicador --copy-files.
Emil Ingerslev

7

Encontré una manera de hacer esto usando el módulo ncp

npm install ncp

Este módulo es básicamente como un cp excepto que funciona en

Este no es un módulo global, así que para ejecutarlo usamos

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.