NPM 在执行递归/深度更新后报告未满足的依赖项
npm ls
报告了很多缺失/未满足的依赖项,例如:
├─┬ @semantic-release/[email protected]
│ ├── @semantic-release/[email protected] deduped
│ ├── [email protected] deduped
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ UNMET DEPENDENCY [email protected]
npm ERR! missing: [email protected], required by @semantic-release/[email protected]
npm init
npm i -D @semantic-release/exec
npm --depth 9999 update
package.json
文件或其祖先的任何npm-shrinkwrap.json
的。package-lock.json
并继续解析所有依赖项,根据需要安装/更新/删除,然后使用解析的树更新锁文件。看起来我已经准备好了重复的问题
命令npm update --depth <number>
会丢失dev: true
以获取更新的 devDependencies 依赖项。
npm update --depth <number>
用于没有新鲜 devDependencies 依赖项的包时它失去了dev: true
更新的 devDependencies 依赖项
loses-dev-for-dev-deps
npm i
npm update --depth 7
我希望此操作应为更新的 devDependencies 依赖项保留dev: true
可能与#944有关
当--depth
大于 0 时,我还遇到npm update
忘记了依赖项的dev
标志。对于较低的深度,也许没有必要?
我发现重新安装节点模块后恢复了 dev 标志( rm -rf node_modules; npm install
)
我看到在使用npm update --depth
后丢失dev
标志的相同问题,但仅适用于我的项目的开发依赖项,这些依赖项是其他依赖项的真正依赖项。
在我的情况下,其他依赖项将“@types/node”添加为依赖项,但在我的项目中将其作为开发依赖项:
依赖项“a”的 package.json:
{
name: "a",
dependencies: {
"@types/node": ">=5.10"
}
}
我的项目:
{
dependencies: {
"a": "1.0.0"
},
devDependencies: {
"@types/node": "^12.0.0",
"somethingElse": "1.0.0"
}
}
在npm update --depth=99
,开发标志对于somethingElse
但对于@type/node
是错误的
编辑: npm install
似乎将@types/node
为根的 dev 依赖项 + 作为组件“a”中嵌套 node_module 的依赖项。
npm update
仅在根目录下作为依赖项安装一次
最有用的评论
看起来我已经准备好了重复的问题
什么为什么
命令
npm update --depth <number>
会丢失dev: true
以获取更新的 devDependencies 依赖项。什么时候
npm update --depth <number>
用于没有新鲜 devDependencies 依赖项的包时在哪里
如何
当前行为
它失去了
dev: true
更新的 devDependencies 依赖项重现步骤
loses-dev-for-dev-deps
npm i
npm update --depth 7
预期行为
我希望此操作应为更新的 devDependencies 依赖项保留
dev: true
参考
可能与#944有关