首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在目录模式下更改babel-cli的文件名输出?

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

Stack Overflow用户
提问于 2017-04-12 12:07:21
回答 2查看 4.1K关注 0票数 10

背景:

我有一些用ES2015编写的测试,但由于在2.1版的QtWebKit中缺乏ES2015支持,需要将它们转换到ES5中才能在PhantomJS中运行。2.5测试版应该支持它。

babel-cli:

我可以使用ES5将测试转到babel-cli

代码语言:javascript
复制
babel main.test.js --out-file main.test.es5.js

为了传输脚本目录,我可以使用:

代码语言:javascript
复制
babel tests --out-dir compiled-tests

这将将转移的测试脚本输出到compiled-tests目录。如果我使用相同的目录,它将覆盖原始目录,所以我们不想这样做。

问题:

有没有一种方法可以在babel-cli的目录模式下修改文件名或扩展名,而不必遍历文件并使用babel.transformFileSync

例如,我希望做一些类似于以下内容的事情:

代码语言:javascript
复制
  babel tests --out-dir tests --outputExtension=".es5.js"

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

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

EN

回答 2

Stack Overflow用户

发布于 2020-03-10 14:14:09

由于v7.8.0,您可以使用巴别克利--out-file-extension标志:

代码语言:javascript
复制
babel tests --out-dir tests --out-file-extension .es5.js

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

票数 5
EN

Stack Overflow用户

发布于 2017-04-12 12:08:48

有一些像grunt-babel这样的构建工具,允许您修改扩展:

代码语言:javascript
复制
files: [{
    expand: true,
    cwd: 'test/',
    src: ['*.test.js'],
    dest: 'test/',
    ext: '.test.es5.js'
}]

这是一个解决办法。但是,我不希望在一个小项目中使用grunt

我可以创建一个节点脚本,它可以执行grunt插件所做的操作,这很简单,但我认为babel-cli包应该天真地支持这一点。我会研究是否有可能加进去。

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

代码语言:javascript
复制
babel test --extensions=".es6" --out-dir test

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43369099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档