【问题标题】:babel-cli not working with latest presetbabel-cli 不适用于最新的预设
【发布时间】:2016-12-25 22:19:16
【问题描述】:

我已经执行了以下行,它编译得很好:

babel src --out-dir lib --presets react,es2015

但是当我将es2015 更改为latest 并运行它时:

babel src --out-dir lib --presets react,latest

我收到以下错误:

TypeError: [BABEL] src/MyComponent.js: Invalid options type for /Users/liadrian/Dev/react-reveal-text/node_modules/babel-preset-latest/lib/index.js
    at Logger.error (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/logger.js:39:11)
    at OptionManager.mergeOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:243:16)
    at /usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:349:14
    at /usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:369:24
    at Array.map (native)
    at OptionManager.resolvePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:364:20)
    at OptionManager.mergePresets (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:348:10)
    at OptionManager.mergeOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:307:14)
    at OptionManager.init (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:465:10)
    at File.initOptions (/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/index.js:194:75)

我觉得这很奇怪,因为我确保安装了 latest 预设,node_modules/babel-preset-latest/ 目录的存在证明了这一点。

否则一切正常。导致它跳闸的latest 预设是什么?我已经尝试了以下所有预设,它们工作得很好:es2015es2016es2017。只是 latest 预设让一切都崩溃了。

我们将不胜感激任何有关故障排除的帮助。

编辑:我的包版本

"babel-cli": "^6.18.0",
"babel-core": "^6.21.0",
"babel-preset-latest": "^6.16.0",
"babel-preset-react": "^6.16.0",

【问题讨论】:

    标签: javascript reactjs ecmascript-6 babeljs


    【解决方案1】:

    参见@_jayphelps 的this tweet

    如果您遇到带有 babel 的错误,例如“Invalid options type for”或“Logger.error”或类似错误,请升级 babel-core! https://github.com/babel/babel/pull/3635

    所以尝试升级babel-core 和其他 Babel 模块。您可以使用以下命令执行此操作:

    npm i -D babel-core@latest
    

    iinstall 的快捷方式,-D 将包添加到devDependencies 中的package.json(与--save-dev 相同),@latest 安装可用的最新版本。

    【讨论】:

    • 感谢您的建议。我试图这样做,但似乎正在发生同样的事情。我用特定的版本号编辑了我的原始帖子。
    【解决方案2】:

    事实证明,我使用的是全局安装的babel-cli,而不是使用本地安装的(这是最新的)。

    一旦我像这样运行它,一切都很顺利:

    node_modules/babel-cli/bin/babel.js src --out-dir lib --presets react,latest

    感谢所有帮助过的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多