为什么我必须运行两次“npm install”才能成功安装我的包

scyqe7ek  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(380)

第一次“npm install”package\ u1时,出现以下错误。

npm ERR! path C:\Users\john_\Documents\GitHub\why_npm_nesting_fails\package_1\node_modules\.staging\bignumber.js-55edd243

我不使用“bignumber”,所以假设它是mysql依赖项。第二次我“npm install”包1时,它通过了。

added 2 packages and audited 30 packages in 0.722s

它与mysql有关,因为在删除这个依赖项之后,一切都是第一次工作的。
以下是依赖关系图:

被剥离的项目可以在https://github.com/johngrabner/why_npm_nesting_fails 只有4个package.json文件(每个文件有7行,包括{})说明了这个问题。ie:4个文件,每个文件有一行来演示这个问题。
由于第一次“npm安装”失败,这个问题阻止了我将项目干净地放入docker容器。安装“package\u4”,然后安装“package\u3”等等的一种解决方法是可行的,但是我担心我不明白什么东西会回来咬我。
上述问题发生在windows和docker上node:9.4.

hujrc8aj

hujrc8aj1#

你一定要保持你的健康 package-lock.json .
下面是对该文件的一个很好的描述以及为什么它如此有用:package-lock.json——清单的一种表现形式
重点是:
描述依赖关系树的单一表示形式,以确保队友、部署和持续集成安装完全相同的依赖关系

通过允许npm跳过以前安装的包的重复元数据解析,优化安装过程
通过删除这个文件,你会(有点)混淆npm。
更容易保持 package-lock.json 文件,然后处理所有问题,如果您没有:)
package-lock.json包
“此文件旨在提交到源存储库”
(https://docs.npmjs.com/files/package-lock.json)

相关问题