babel-preset-react-app,正在导入“@babel/plugin-proposal-private-property-in-object”包,而不在其依赖项中声明它

Omr*_*ulu 115 javascript ejs node.js reactjs babeljs

我的问题是,我尝试创建一个新的 React 项目,在遇到很多漏洞问题后,我设法解决了其中一些问题,主要说明之一是添加这一行:

\n
"overrides": {\n    "@svgr/webpack": "$@svgr/webpack"\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

到我的package.json文件中。

\n

完成此操作后,我必须删除我的node_modules 文件夹并重新使用npm install,现在我在输入 后收到Babelnpm start错误。

\n
"overrides": {\n    "@svgr/webpack": "$@svgr/webpack"\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试在互联网上搜索解决方案,但我发现只有一个告诉我将此插件添加到我的 devDependency 中的解决方案不起作用,而且我还找到了一个解决方案告诉我键入CI= npm run build 哪个也不起作用。

\n

这是我在输入时遇到的情况npm list @babel/plugin-proposal-private-property-in-object

\n
One of your dependencies, babel-preset-react-app, is importing the\n"@babel/plugin-proposal-private-property-in-object" package without\ndeclaring it in its dependencies. This is currently working because\n"@babel/plugin-proposal-private-property-in-object" is already in your\nnode_modules folder for unrelated reasons, but it may break at any time.\n\nbabel-preset-react-app is part of the create-react-app project, which is not maintained anymore. It is thus unlikely that this bug will\never be fixed. Add "@babel/plugin-proposal-private-property-in-object" to\nyour devDependencies to work around this error. This will make this message\ngo away.\n
Run Code Online (Sandbox Code Playgroud)\n

这就是我的 package.json 文件的样子,如果它以某种方式有助于计算:

\n
{\n  "name": "keeper-app-part-1-starting",\n  "version": "1.0.0",\n  "description": "",\n  "keywords": [],\n  "main": "src/index.js",\n  "dependencies": {\n    "react": "18.2.0",\n    "react-dom": "18.2.0"\n  },\n  "devDependencies": {\n    "@svgr/webpack": "^8.0.1",\n    "react-scripts": "5.0.1",\n    "typescript": "5.1.3"\n  },\n  "overrides": {\n    "@svgr/webpack": "$@svgr/webpack"\n  },\n  "scripts": {\n    "start": "react-scripts start",\n    "build": "react-scripts build",\n    "test": "react-scripts test --env=jsdom",\n    "eject": "react-scripts eject"\n  },\n  "browserslist": [\n    ">0.2%",\n    "not dead",\n    "not ie <= 11",\n    "not op_mini all"\n  ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Kun*_*agi 172

运行以下命令解决了我的问题

npm install --save-dev @babel/plugin-proposal-private-property-in-object

使用 --save-dev 将其安装在 devDependencies 下

  • 这修复了我的 netlify 构建失败,它将警告视为错误并使构建失败。 (3认同)

Omr*_*ulu 26

感谢大家,最终这解决了我的问题: npm install --save-dev @babel/plugin-proposal-private-property-in-object --legacy-peer-deps


dev*_*smh 8

我今天也遇到了这个问题。我通过在npm start ”和“ npm run build ”对我来说很好之后添加所需的库来解决。注:使用的版本号^7.21.11

  • 通过额外的支持信息可以改进您的答案。请[编辑]添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以[在帮助中心](/help/how-to-answer)找到有关如何写出好的答案的更多信息。 (3认同)

小智 5

我尝试添加"@babel/plugin-proposal-private-property-in-object": "^7.21.11"到 devDependency,并且我的CI=npm run build成功完成。


Tun*_*ran 5

这是对我有用的babel 包的组合:

"devDependencies": {
    "@babel/core": "7.22.5",
    "@babel/eslint-parser": "7.22.5",
    "@babel/plugin-proposal-private-property-in-object": "7.21.11",
    "@babel/preset-env": "7.22.5",
}
Run Code Online (Sandbox Code Playgroud)

重要步骤:也添加@babel/plugin-proposal-private-property-in-object.babelrc 插件中。像这样的东西:

"plugins": [
    ["@babel/plugin-proposal-private-property-in-object", { "loose": true }]
]
Run Code Online (Sandbox Code Playgroud)

请参阅 GitHub 问题: https://github.com/babel/babel-plugin-proposal-private-property-in-object/issues/1


Dur*_*aco 5

如果您愿意yarn,这是等效的命令:

yarn add @babel/plugin-proposal-private-property-in-object --dev
Run Code Online (Sandbox Code Playgroud)


小智 5

npm install --save-dev @babel/plugin-proposal-private-property-in-object
Run Code Online (Sandbox Code Playgroud)

也许这是解决您的问题的最佳方法,也可以将其安装在devDependencies.

长答案: 由于 npm 错误本身表明,安装所需的包是dev-dependency可行的,并且因为它是已弃用的包,所以它应该是安全的。