今天,我从共享的 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
},
从几个包中npm install
后,"dev": true
消失了。我应该担心 NPM 这样做吗?我不希望为生产环境安装这些软件包。
这个问题"dev": true
有些相关,但还没有一个好的答案,我仍然想知道我是否做错了什么。为什么 NPM 要删除它?
您的"dev": true
消失了,因为包成为非开发依赖项。
具有"dev": true
的包仅在开发中需要,而在生产中不需要。
这意味着它只能直接或间接地通过devDependencies
而不是通过dependencies
中的任何内容。
如果您确实npm install --production
或在环境中有NODE_ENV=production
,则不会安装它。