如何在目录模式下更改babel-cli的文件名输出?

时间:2017-04-12 12:07:21

标签: javascript babel

背景

我有一些在ES2015中编写的测试,但由于在v2.1中QtWebKit缺乏ES2015支持,因此需要将其转换为ES5才能在PhantomJS中运行。 2.5 beta应该支持它。

巴别-CLI:

我可以使用babel-cli

将测试转换为ES5
babel main.test.js --out-file main.test.es5.js

为了转换脚本目录,我可以使用:

babel tests --out-dir compiled-tests

这会将已编译的测试脚本输出到compiled-tests目录。如果我使用相同的目录,它将覆盖原始目录,因此我们不希望这样。

问题:

有没有办法在babel-cli的目录模式下修改文件名或扩展名,而无需循环浏览文件并使用babel.transformFileSync

例如,我期望按照以下方式做点什么:

  babel tests --out-dir tests --outputExtension=".es5.js"

这需要a.jsb.js等,并输出a.es5.jsb.es5.js等。

我还可以想象使用正则表达式提取源文件名的部分并将其与自定义组合的选项。

2 个答案:

答案 0 :(得分:2)

v7.8.0起,您可以使用babel-cli@Override public void onClick(View v) { switch (v.getId()) { case R.id.save_memo: { //test mNote.setTitle(editTitle.getText().toString()); mNote.setContent(content.getText().toString()); mNote.setTimestamp("00 0000"); mRepository.insertNewMemo(mNote); finish(); break; } } } 标志:

--out-file-extension

https://babeljs.io/docs/en/babel-cli#set-file-extensions

答案 1 :(得分:-1)

grunt-babel等构建工具,可以修改扩展名:

files: [{
    expand: true,
    cwd: 'test/',
    src: ['*.test.js'],
    dest: 'test/',
    ext: '.test.es5.js'
}]

这是一个解决方案。但是,我不想依赖于将grunt用于一个小项目。

我可以创建一个节点脚本来执行grunt插件所做的事情,这很简单,但我认为babel-cli包应该天真地支持这个。我将研究添加它的可能性。

与此同时,我有一个解决方法。我将我的测试文件重命名为使用.es6扩展名,然后强制babel-cli仅查看该特定扩展名。 ES5代码的输出为.js

babel test --extensions=".es6" --out-dir test

它不允许我重命名脚本名称,甚至不提供不同的扩展名,但它可以帮助我区分同一目录中的两个版本。