【问题标题】:Could not find plugin "proposal-numeric-separator"找不到插件“proposal-numeric-separator”
【发布时间】:2020-07-01 23:23:14
【问题描述】:

如何修复Could not find plugin "proposal-numeric-separator",当我尝试构建我的 React 应用程序时收到此错误,我还没有弹出应用程序:

./src/index.js
Error: [BABEL] /home/pc/Downloads/project/src/index.js: Could not find plugin "proposal-numeric-separator". Ensure there is an entry in ./available-plugins.js for it. (While processing: "/home/pc/Downloads/project/node_modules/babel-preset-react-app/index.js$0")
    at Array.map (<anonymous>)
    at Generator.next (<anonymous>)
    at Generator.next (<anonymous>)


error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

我已经尝试下载 Babel 和依赖 Proposal Numeric Separator,删除节点模块,清理 Yarn 缓存;但没有任何效果。

我正在使用 Yarn 1.22.4 和 Node 13.11.0,但我也尝试过使用 NPM 6.13.7。

【问题讨论】:

标签: reactjs build yarnpkg


【解决方案1】:

这件事发生在我身上。为了修复它,我使用 sudo 权限运行了 yarn build

【讨论】:

    【解决方案2】:

    以下步骤有效:

    1. 将以下行添加到package.json
    "resolutions": { 
      "@babel/preset-env": "7.5.5" 
    },
    
    1. 运行以下命令:
    $ npx npm-force-resolutions
    
    1. 安装依赖项:
    $ npm install
    # or 
    $ yarn
    
    1. 构建您的项目:
    $ yarn build
    

    看看这个Github Issue

    【讨论】:

    • 刚刚添加了resolutions,删除了node_modules并安装了依赖项。它奏效了,谢谢。 观察:我已经测试了构建,一切正常。
    • 伙计,你救了我的命。你怎么知道这个答案?你有我的真棒,伙计。非常感谢。
    • @CarlosQuerioz 我认为原因是this 文档中的最后一个主题:“您的依赖项定义了广泛的版本范围,而您的子依赖项刚刚得到了一个有问题的更新,因此您想将其固定到较早的版本”
    • 谢谢你。我不知道发生了什么。怎么会突然发生。我可以正常构建它,直到昨天,今天我必须这样做才能修复它?
    • @user3746480 是 babel 依赖的问题。最可能的原因可能是删除或更新节点模块。这就是为什么强制执行给定的工作版本来修复它
    【解决方案3】:

    为什么会出现这个问题?:

    这是babel使用的内部包之间的冲突问题。

    @babel/compat-data 添加新插件会破坏旧的@babel/preset-env 版本。这是因为preset-env 迭代了compat-data 的插件,如果插件未在preset-env 的available-plugins.js 文件中定义,则会抛出异常。

    这是解决问题的合并:https://github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd

    解决方案

    • 删除package-lock.jsonyarn.lock
    • 删除node_modules文件夹
    • package.jon我已经将这些包的版本号调整为:
        ...
        "devDependencies": {
            "@babel/compat-data": "^7.8.0",
            "@babel/preset-env": "^7.8.0",
            "babel-loader": "^8.1.0",
            ...
        },
        ...
        "resolutions": {
            "@babel/preset-env": "^7.8.0"
        }
    
    • 运行npm install
    • 运行npm run build

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题,我能够通过将所有 babel 依赖项更新到最新版本来解决它。我不知道 babel 的确切问题。但是,下面提到的步骤对我有用。

      第 1 步:从 package.json 中识别并删除所有 babel 相关的依赖项

      npm remove @babel/runtime @babel/core @babel/plugin-proposal-class-properties @babel/plugin-transform-modules-commonjs @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react babel-eslint babel-jest babel-loader
      

      第二步:重新安装 babel 依赖

      npm install --save @babel/runtime
      
      npm install --save-dev @babel/core @babel/plugin-proposal-class-properties @babel/plugin-transform-modules-commonjs @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react babel-eslint babel-jest babel-loader
      

      PS:上面的 babel 依赖列表会因你的项目而异。

      【讨论】:

        【解决方案5】:

        来自create-react-app中对应的issue

        将你的 package.json 文件中的 react-scripts 更新到 3.4.1 并删除 node_modules 以及 package-lock.json/yarn.lock 并重新安装。

        【讨论】:

          【解决方案6】:

          我刚刚将 react-script 版本从 3.0.1 更改为 3.4.1

          【讨论】:

            【解决方案7】:

            我正在使用 Angular,这对我有用,只需将 @babel/compat-data 的版本从 ^7.8.0 更改为 7.8.0,package-lock.json 的更新版本有错误。

            在 package.json 中:

              "devDependencies": {
                "@babel/compat-data": "7.8.0",
            }
            

            【讨论】:

            【解决方案8】:

            参考:https://github.com/angular/angular-cli/issues/17262

            我找到了两个解决方案

            a ) 安装 babel 兼容

            "devDependencies": {
                "@babel/compat-data": "7.8.0",
            } 
            

            b) 安装 plugin-proposal-numeric-separator

            npm install --save-dev @babel/plugin-proposal-numeric-separator
            

            仅安装此版本 7.8.0

            1. Angular CLI 可能会产生此类问题。转到package json并将其更改为

              build-angular": "0.803.17"

            请不要加 ^ 或 ~

            【讨论】:

              【解决方案9】:

              这只是一个 4 步过程。

              原因: 这是因为 babel 中缺少一个包。即使您使用 ng new 命令创建 Angular 应用程序,也会发生这种情况。

              解决方案

              1. 在终端中使用以下代码安装plugin-proposal-numeric-separator

                npm install --save @babel/plugin-proposal-numeric-separator
                
              2. 完成后导航到文件,如下所示。

                node_modules > @babel > preset-env > available-plugins.js

              3. exports.default = void 0;下方的available-plugins.js中复制并粘贴以下代码。

                var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
                
              4. var _default对象声明中的available-plugins.js中复制并粘贴以下代码。

                "proposal-numeric-separator": _pluginProposalNumericSeparator.default,
                

              它已经完成了。

              【讨论】:

              【解决方案10】:

              试试这个,它有效:npm i @babel/compat-data@7.8.0

              我在 10 分钟前刚刚使用过它,它运行良好。

              Related issue going on github about this. Click Here!

              【讨论】:

              • 为我工作。最直接的答案恕我直言。
              • 很高兴听到这个消息,谢谢安迪 B-)
              • 谢谢,我厌倦了这里描述的其他方法,但第一次尝试就奏效了
              • 我安装的@babel/preset-env 版本是7.8.6,安装完全相同的@babel/compat-data 版本对我有用!
              【解决方案11】:

              在我的 Angular 8 应用程序中,虽然我没有任何直接依赖于 react-scripts 包并且在 package.json 中也没有它,但在构建时开始出现此错误。它很可能被其他包用作依赖项。

              通过阅读github 上的这篇文章,我将它作为依赖项添加到 package.json "react-scripts": "3.4.1" 并运行 npm install 构建开始工作正常。

              【讨论】:

                【解决方案12】:

                在 package.json 中

                  "dependencies": {
                    "@babel/compat-data": "7.8.0",
                    "@babel/plugin-proposal-numeric-separator": "^7.8.3",
                    "babel-loader": "^8.1.0",
                  ....
                  "resolutions": {
                     "@babel/preset-env": "^7.8.7"
                  }
                

                它对我有用。你可以阅读更多

                https://github.com/angular/angular-cli/issues/17262#issuecomment-603396857

                【讨论】:

                  【解决方案13】:

                  你可以使用这个命令,它对我有用。

                  npm i @babel/compat-data@7.8.0
                  

                  【讨论】:

                    【解决方案14】:

                    Add SKIP_PREFLIGHT_CHECK=true to .env file 使构建工作而不弹出并按照以下步骤操作:

                    • 删除node_modulespackage-lock.json
                    • "resolutions": { "@babel/preset-env": "^7.8.7" } 添加到package.json
                    • 运行npm install npm-force-resolutions --save-dev
                    • 运行npm install
                    • 运行npx npm-force-resolutions
                    • 再次运行npm install
                    • 运行npm run build

                    【讨论】:

                      【解决方案15】:

                      这对我有用:

                      • 删除package-lock.json
                      • 删除node_modules
                      • 运行npm i

                      【讨论】:

                        【解决方案16】:

                        就我而言,我的node_modules 文件夹已损坏。 我的 yarn install 只是因为电涌而停在了中间。

                        通过运行:

                        rm -rf node_modules
                        yarn
                        

                        我的问题解决了。

                        【讨论】:

                          【解决方案17】:

                          为我工作。 npm install @babel/compat-data@~7.8.0

                          【讨论】:

                            【解决方案18】:

                            试试这个,这个对我有用。

                            npm i @babel/compat-data@7.8.0
                            

                            【讨论】:

                              猜你喜欢
                              • 2020-07-16
                              • 2020-07-02
                              • 2020-07-02
                              • 2020-07-07
                              • 2022-06-12
                              • 2020-10-16
                              • 2021-05-23
                              • 1970-01-01
                              • 2020-03-13
                              相关资源
                              最近更新 更多