“我为什么要跑?”;npm安装“;两次,我的软件包才能成功安装
第一次安装“npm安装”包_1时,出现以下错误“我为什么要跑?”;npm安装“;两次,我的软件包才能成功安装,npm,npm-install,Npm,Npm Install,第一次安装“npm安装”包_1时,出现以下错误 npm ERR! path C:\Users\john_\Documents\GitHub\why_npm_nesting_fails\package_1\node_modules\.staging\bignumber.js-55edd243 我不使用“bignumber”,所以假设它是MySQL依赖项。第二次我“npm安装”包_1时,它通过了 added 2 packages and audited 30 packages in 0.722s
npm ERR! path C:\Users\john_\Documents\GitHub\why_npm_nesting_fails\package_1\node_modules\.staging\bignumber.js-55edd243
我不使用“bignumber”,所以假设它是MySQL依赖项。第二次我“npm安装”包_1时,它通过了
added 2 packages and audited 30 packages in 0.722s
它与MySQL有关,因为在删除此依赖项后,所有内容都第一次工作
以下是依赖关系图:
可在以下网址找到精简的项目:
只有4个package.json文件(每个文件有7行,包括{})说明了这个问题。ie:4个文件,每行1行,演示此问题
由于第一次“npm安装”失败,这个问题使我无法将我的项目干净地放入docker容器中。解决方法
安装“package_4”,然后安装“package_3”等等,都可以,但是
我担心我不明白什么东西会回来咬我
上述问题在Windows和Docker Node:9.4上都会出现。您肯定应该始终保持您的
包锁定。json
以下是该文件的详细说明,以及该文件如此有用的原因:
要点是:
- 描述依赖关系树的单一表示形式,以确保团队成员、部署和持续集成能够安装完全相同的依赖关系
- 通过允许npm跳过以前安装的包的重复元数据解析,优化安装过程
package lock.json
文件更容易,如果不这样做,则可以处理所有出现的问题:)
包锁.json “此文件旨在提交到源存储库中”
()npm-v=6.5.0。节点-v=8.9.4。在windows pc上。docker中使用“FROM node:9.4”时出现了相同的错误。非常奇怪的观察结果:如果我保留了前一个双“npm install”中的package-lock.json,那么“npm install”第一次起作用。此外,如果保留package-lock.json,则在package-1文件夹中只创建一个“node\u modules”,而在创建的4个node\u modules中,每个package\n中只创建一个。MySQL的哪个版本?如果保留您的
package-lock.json
解决了这个问题,您是否考虑过提交您的package.json
?当package lock.json
存在时,npm install
应该在查看您的package.json
之前引用它package lock.json
描述了当npm安装
从头开始时发生的最终元数据解析。Myswl版本2.15.0只有顶级项目应该提交锁文件,而不是包。无论如何,真正的谜团是什么导致了失败,而不是如何逃避。如果不了解潜在的失败原因,它很可能会在未来暴露出它的头。