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% випадків використання
Олександр Міллс,

Відповіді:


176

Для цього 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.