今天,我从共享 Git 存储库中提取了最新版本,并注意到我团队中的另一位开发人员添加了一个 NPM 包。所以我运行了
npm install
,然后看到我的 package-lock.json
文件发生了变化。当我深入研究发生的变化时,我发现"dev": true
已从几个包描述中删除,例如:
"some-package": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/whatever/-/some-package-1.0.0.tgz",
"integrity": "some-big-hash",
"dev": true
},
"dev": true
在几个包裹中的npm install
之后就消失了。我应该担心 NPM 这样做吗?我不希望安装这些软件包进行生产。
"dev": true
的问题有点相关,但还没有一个好的答案,我仍然想知道我是否做错了什么。为什么 NPM 删除这个?
您的
"dev": true
消失了,因为该包成为非开发依赖项。
带有
"dev": true
的包仅在开发中需要,而不是在生产中。
这意味着它是直接或间接需要的,仅通过
devDependencies
而不是通过 dependencies
中的任何内容。
如果您执行
npm install --production
或环境中有NODE_ENV=production
,则不会安装。
您需要从 git config 中删除
legacy-peer-deps=true