babel CLI复制nonjs文件


90

我正在运行babel cli命令

babel src --out-dir lib

将es6脚本从src复制到lib。但是,它不会复制src /文件夹中的css / scss文件。有没有办法使其也复制它们?


Babel的功能是处理js文件。使用cp拷贝。更好的是,制作一个gulpfile。
阿玛丹2015年

17
反对100%,babel应该包含用于移动非js文件的功能,因为对于50%以上的用例来说,这是必不可少的功能
Alexander Mills

Answers:


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文件:/
Alexander Mills

您可能尚未添加反应预设吗?
埃米尔·英

好吧,如果未安装react预设,它是否仍应该移动文件?:)都没有,我向bab​​el提出了一个问题,否则这确实起作用了,我投票了:)
亚历山大·米尔斯

我猜就是这样。发现更改日志(github.com/babel/babel/blob/master/CHANGELOG.md)指出了有关此错误的错误已在5.8.13-5.8.20版中修复:修复了无法编译babel的文件的错误当使用--copy-files标志忽略时被写入。
Emil Ingerslev

7

我找到了使用ncp模块执行此操作的方法

npm install ncp

这个模块基本上像一个cp,除了它在

这不是全局模块,因此我们使用

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.