babel CLI копирует файлы nonjs


90

Я выполняю команду babel cli

babel src --out-dir lib

Чтобы скопировать скрипты es6 из src в lib. Однако он не копирует файлы css / scss, которые у меня есть в папке src /. Есть ли способ заставить его скопировать их?


Функция Babel обрабатывает jsфайлы. Используйте cpдля копирования. А еще лучше сделать gulpfile.
Амадан

17
не согласен на 100%, babel должен включать функциональность для перемещения файлов, отличных от js, поскольку это необходимая функциональность для> 50% случаев использования
Александр Миллс,

Ответы:


177

Для этого у Babel есть опция копирования файлов :

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

Примечание: это правда, что основная цель babels - обработка файлов javascript, но большой набор инструментов babel в наши дни часто делает ненужным переход к более сложным настройкам сценариев сборки, как gulpи тому подобное. Настройка без глотка могла бы добавить это к 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
это почти сработало, за исключением того, что он не копировал файл jsx: /
Александр Миллс,

Может быть, вы не добавили предустановку реакции?
Эмиль Ингерслев

ну, если пресет реакции не установлен, он все равно должен переместить файл? :) ни того ни другого, я отправил сообщение о проблеме с babel, иначе это сработало, и я проголосовал за :)
Александр Миллс,

Да, думаю, да. Обнаружено, что в журнале изменений ( github.com/babel/babel/blob/master/CHANGELOG.md ) указано, что ошибка исправлена ​​в версии 5.8.13-5.8.20: Исправлена ​​ошибка, при которой файлы, которые может компилировать babel, не были записывается, когда игнорируется флагом --copy-files.
Эмиль Ингерслев

7

Я нашел способ сделать это с помощью модуля ncp

npm install ncp

Этот модуль в основном похож на cp, за исключением того, что он работает на

Это не глобальный модуль, поэтому для его запуска мы используем

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.