【发布时间】:2019-05-20 01:46:39
【问题描述】:
我第一次“npm install”package_1 时,出现以下错误。
npm ERR! path C:\Users\john_\Documents\GitHub\why_npm_nesting_fails\package_1\node_modules\.staging\bignumber.js-55edd243
我不使用“bignumber”,所以假设它是 MySQL 依赖项。我第二次“npm install”package_1,它通过了。
added 2 packages and audited 30 packages in 0.722s
这与 MySQL 有关,因为在删除此依赖项后,第一次一切正常。
这是一个依赖关系图:
可以在以下位置找到精简后的项目 https://github.com/johngrabner/why_npm_nesting_fails 只有 4 个 package.json 文件,每个文件有 7 行,包括 { } 说明了这个问题。即:4 个文件,每个文件 1 行,演示了这个问题。
由于第一次“npm install”失败,这个问题阻止了我将我的项目干净地放入 docker 容器中。一种解决方法 安装“package_4”,然后安装“package_3”等等,但有效 我担心我不理解会回来咬我的东西。
Windows 和 Docker Node:9.4 都会出现上述问题。
【问题讨论】:
-
npm -v = 6.5.0。节点-v = 8.9.4。在 Windows 电脑上。使用“FROM node:9.4”的 docker 出现同样的错误。
-
非常奇怪的观察:如果我保留前一个双“npm install”的 package-lock.json,那么“npm install”第一次工作。此外,如果保留 package-lock.json,则在 package_1 文件夹中只创建一个“node_modules”,而在每个 package_n 中创建 4 个 node_modules。
-
什么版本的 MySQL?
-
如果保留您的
package-lock.json可以解决问题,您是否考虑过提交您的package.json?当package-lock.json存在时,npm install应该在查看您的package.json之前引用它。 docs.npmjs.com/cli/install#descriptionpackage-lock.json描述了npm install从头开始完成时发生的最终元数据解析。 -
Myswl 版本 2.15.0
标签: npm npm-install