我的一位同事的PR包含package-lock.json更新,其中添加了"optional": true:
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"minipass": {
Run Code Online (Sandbox Code Playgroud)
即使在四处搜寻后,我也不知道这意味着什么。有人可以解释一下吗?
Fra*_*sas 42
从https://docs.npmjs.com/files/package-lock.json#optional:
如果为true,则此依赖项仅是顶层模块的可选依赖项,或者是一个传递性依赖项。对于既是顶层的可选依赖关系又是顶层的非可选依赖关系的传递性依赖关系的依赖关系,则为false。
合并此更改是安全的。
您看到此更改的原因很可能是因为npm稍微改变了版本6.6中package-lock.json的结构。您的伴侣基本上在npm install先前由npm 6.5-生成的package-lock.json上以npm 6.6+运行。
通过确保团队中的每个人都使用最新版本的,您应该能够避免此类问题npm。
从依赖项中删除软件包后,其依赖项将标记"optional": true为package-lock.json。
通常安全的方法是用手或用手提袋取出此类包装
$ rm -rf package-lock.json node_modules/
$ npm install
Run Code Online (Sandbox Code Playgroud)
但是,这不是100%安全的,因为某些软件包将更新为较新的版本。
原因之一是:
某些 npm 包可能需要依赖包(例如 minimist)才能在不同的操作系统中工作。NPM 在 npm install 上将此软件包标记为可选,如果有的话,它不是必需的,具体取决于您使用的操作系统。
请检查以下问题:
开放问题:package-lock.json 和可选包:https://github.com/npm/npm/issues/17722
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
10139 次 |
| 最近记录: |