无效选项:corejs 不是有效的***选项

Posted

技术标签:

【中文标题】无效选项:corejs 不是有效的***选项【英文标题】:Invalid Option: corejs is not a valid top-level option 【发布时间】:2019-09-05 05:11:24 【问题描述】:

我用 webpack 和 babel 构建了 react 项目。

效果很好。

但是,今天我在下面遇到了一些错误。

ERROR in ./index.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: [BABEL] /home/rpf5573/react-discovery-v2/src/admin/admin-client/index.js: Invalid Option: corejs is not a valid top-level option.
        Maybe you meant to use 'targets'? (While processing: "/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/index.js")
    at validateTopLevelOptions (/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/normalize-options.js:49:13)
    at normalizeOptions (/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/normalize-options.js:160:3)
    at _default (/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/index.js:168:37)
  ....
error Command failed with exit code 2.

这是我的admin-client/.babelrc

module.exports = 
  compact: true,
  presets: [
    [
      "@babel/preset-env",
      
        modules: false,
        targets: 
          browsers: ["since 2015"]
        ,
        useBuiltIns: "usage",
        corejs: "2"
      
    ],
    "@babel/preset-react"
  ],
  plugins: [
    "@babel/plugin-proposal-class-properties"
  ]

我做错了什么?

我该怎么办?

【问题讨论】:

试过删除node_modules? @DennisVash 不,我刚刚从 .babelrc 中删除了 corejs: "2" 行。现在运行良好。 同时删除你的 npm 或 yarn lock 文件并重新生成会有所帮助。 不确定是否是这种情况,但可以肯定 core3 与 core2 发生冲突,可能是在您的情况下,某些包已经在寻找 core3 thebasement.be/updating-to-babel-7.4 【参考方案1】:

也许您最近有一些重大的版本更改?

就我而言,这就是原因。而解决方案是:

从项目中彻底删除node-modules文件夹

从项目根文件夹中删除package-lock.json文件

执行npm i 重新创建所有内容

【讨论】:

【参考方案2】:

作为@SysDragon 建议的完全删除node-modules 的替代方法。我更深入地研究了为什么投诉特定于corejs。我找到了一个很好的补救措施here。

总之,这些是采取的步骤:

安装最新版本的core-js(或至少版本3)。 无论您正在构建什么“可能”都在使用最新的 javascript 功能。就我而言,我正在使用 react-16.9.0mdbreact-4.19.0

注意:Core-js 是 JavaScript 的模块化标准库。包括截至 2019 年的 ECMAScript 的 polyfill:承诺、符号、集合、迭代器、类型化数组和许多其他功能。

然后,您需要更新您的转译器babel,它是“亲戚”。 这个块 sn-p 帮助实现了这一点:yarn upgrade @babel/core @babel/plugin-transform-runtime @babel/polyfill @babel/preset-env @babel/runtime babel-loader --dev

--dev 部分只是将它们保存为 devDependencies(如果使用 yarn)(对于 npm,使用 --save-dev),我特别提倡这是团队项目。

【讨论】:

我只需要安装core-js。非常感谢! o/【参考方案3】:

就我而言,我正在处理的子目录是存储库根目录中较大 Yarn 工作区的一部分,从工作区中删除该子目录并在子目录中重新安装 node_modules 解决了该问题。

这个问题很可能是由依赖不匹配引起的。

【讨论】:

以上是关于无效选项:corejs 不是有效的***选项的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Validation,在提交时显示有效/无效的表单选项卡

如果在此 div 之外和其他可拖动对象内部,则可拖动恢复(使用无效和有效恢复选项)

为啥当我添加一个选择选项来选择表单字段时不会更改为有效?

Django - 选择一个有效的选项。该选择不是可用的选择之一

在 sqlplus 中执行脚本时出错,选项不是有效数字

在情节提要中更改选项卡栏项目选定的颜色