我的一个同事的PR包含一个包-lock.json update,它添加了"optional": true
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"minipass": {我不确定这是什么意思,即使在谷歌周围。有没有人能解释一下?
发布于 2019-03-27 17:33:44
来自https://docs.npmjs.com/files/package-lock.json#optional
如果为true,则此依赖项要么是顶级模块的可选依赖项,要么是顶级模块的传递依赖项。对于既是顶级的可选依赖项又是顶级的非可选依赖项的传递依赖项的依赖项,这是假的。
合并此更改是安全的。
您看到此更改的原因很可能是因为npm slightly changed how package-lock.json is structured in version 6.6。你的伙伴基本上是在之前用npm 6.5生成的包- 6.6+ - Your上运行带有npm lock.json的npm install。
通过确保团队中的每个人都使用最新版本的npm,您应该能够避免此类问题。
发布于 2019-05-28 15:52:38
包从依赖项中删除后,其依赖项在package-lock.json中标记为"optional": true。
通常,手动或手动删除此类软件包是安全的。
$ rm -rf package-lock.json node_modules/
$ npm install然而,这并不是100%安全的,因为一些包将被更新到较新的版本。
发布于 2019-01-29 08:35:25
其中一个原因是:
一些npm包可能需要依赖包(例如最小化)才能在不同的操作系统中工作。NPM在npm安装时将这个包标记为可选,如果有的话,它不是必需的,这取决于您正在使用的操作系统。
请检查以下问题:
开放问题: package-lock.json和可选的packages:https://github.com/npm/npm/issues/17722
希望能有所帮助。
https://stackoverflow.com/questions/54411377
复制相似问题