"prop-types" 应该列在项目的依赖项中,而不是开发依赖项中。

8

我执行了npm install prop-types --save-dev的命令,结果出现了这个错误:

'prop-types' 应该被列在项目的依赖中,而不是 devDependencies 中 import/no-extraneous-dependencies

后来,我通过运行npm uninstall prop-types --save-dev卸载了此依赖项,并通过运行npm install prop-types --save重新安装了它。

但是,错误仍然存在:

'prop-types' 应该被列在项目的依赖中。 运行 'npm i -S prop-types' 将其添加 import/no-extraneous-dependencies


打开你的 package.json 文件,将 prop-types 从 devDependencies 移动到 dependencies。 - Nicholas Tower
保存到常规依赖项,而不是开发依赖项。 - Drew Reese
重启控制台后仍然无法工作。 - Rahul Yadav
--save-dev 会保存到开发依赖中,请使用 --save 或者完全避免使用该标志,因为 --save 是默认行为。 - Alexander Staroselsky
更好的答案是仅编辑 lint 规则。prop-types 是开发依赖项,而不是真正的依赖项。请参见:https://dev59.com/UlcP5IYBdhLWcg3wr8Dj - Adam Jenkins
3个回答

9
你的 package.json 文件很可能目前看起来是这样的:
{
  "name": "your-website",
  ...
  "dependencies": {
    "react": "^16.10.2",
    "react-dom": "^16.10.2",
    "webpack": "^4.44.1",
    ...

  },
  "devDependencies": {
    "prop-types": "^15.7.2",
    "@types/node": "^14.0.18",
    ...
  },
}

让它看起来像

{
  "name": "your-website",
  ...
  "dependencies": {
    "react": "^16.10.2",
    "react-dom": "^16.10.2",
    "webpack": "^4.44.1",
    "prop-types": "^15.7.2",
    ...

  },
  "devDependencies": {
    "@types/node": "^14.0.18",
    ...
  },
}

通过将prop-types从`devDependencies`移动到`dependencies`,然后运行`npm install`或者如果你正在使用yarn,则运行`yarn install`。
您的`devDependencies`是在构建项目时使用的依赖项。它们不会出现在项目的生产环境中。当有人在浏览器中打开网站时,`devDependencies`的代码不会包含在其中。
当您安装一个软件包时, - 使用 `npm install` 将该软件包放入您的 `package.json` 中作为 `dependency` - 使用 `npm install --save-dev` 将该软件包放入您的 `package.json` 中作为 `devDependency`。

即使从dev-deps更改为dependencies,错误仍然存在。 - Rahul Yadav
@RahulYadav,你执行了 npm install 命令吗? - Sam
7
你可以尝试在删除node_modules文件夹后运行npm clean命令,这是我所知道的全部解决方法。 - Sam
3
@RahulYadav 谢谢,删除 node_modules 并运行 npm install 后帮了我很大的忙。 - Mrmld Sky

2
您需要执行以下命令: rm -rfd ./node_modules 来删除node_modules目录,然后手动更改您的package.json如下:
  "dependencies": {
    ...
    "prop-types": <YOUR_VERSION>,
  },
  "devDependencies": {
    ...
  },

最后,如果您使用的是yarn,请运行yarn,否则请运行npm i

0
我遇到了相同的问题,以下是对我有帮助的解决方法: 我认为我遇到了npm的一个bug,所以我运行了"npm install prop-types"命令,然后删除了node_modules和package-lock.json文件; 最后重新运行npm install。之后问题得到了解决!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接