【问题标题】:Babel didn't work as expected, babel-cli just echos back the input file unchanged [duplicate]Babel 没有按预期工作,babel-cli 只是回显输入文件不变[重复]
【发布时间】:2015-11-16 20:20:22
【问题描述】:

我只是使用 npm (npm install -g babel-cli) 下载 Babel,但是当我使用 babel-cli 编译代码时,stdout 只会返回我尝试编译的未编译代码的相同副本。

我的babel版本是6.1.18(babel-core: 6.1.21),node版本是4.2.2。

我测试了 OS X 10.9 和 OS X 10.10,它们都有同样的问题。

当我使用babel test.js 时,Bebel 甚至无法使用下面的代码:

let a = '';
class b {

}

【问题讨论】:

标签: javascript ecmascript-6 babeljs


【解决方案1】:

来自their website

Babel 6 没有任何默认转换,所以当你在 一个文件,它只会将其打印回给您,而无需更改 任何东西。

运行此命令并首先安装 es2015 预设:

npm install --save-dev babel-preset-es2015

现在编译:

babel test.js --presets es2015

我还注意到,当您 npm install babel-preset-es2015 时,您必须执行 --save-dev,如果您只使用 -g,则会收到错误 Error: Couldn't find preset "es2015",因此请务必执行 @安装预设时为 987654328@ 而不是 -g

【讨论】:

    【解决方案2】:

    从版本 6 开始,Babel 默认不附带任何转换。因此,必须安装 babel-preset-es2015 才能启用转换。安装后,您必须使用package.json.babelrc 文件启用预设。 示例package.json 文件:

    {
      "name": "es6-test",
      "version": "1.0.0",
      "babel": {
        "presets": ["es2015"]
      }
    }

    如果你改用.babelrc

    {
      "presets": ["es2015"]
    }

    This article might help with detailed instructions.

    在相关说明中,如果您使用-g--global 全局安装预设,请确保在您的项目目录中创建一个符号链接,如npm link babel-preset-es2015

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 2016-03-12
      • 1970-01-01
      • 2023-03-17
      • 2014-12-17
      相关资源
      最近更新 更多