场景 1
终端:视窗cmd
节点版本:v8.0.0
NPM版本:v5.5.1
我有一个特别提到的package.json
"@swimlane/ngx-charts": "^7.3.0",
"@swimlane/ngx-graph": "^4.3.0",
这些对d3-scale
有次依赖。
在此方案中,npm install
命令将安装d3-scale: v2.0.0
其中包含dist/
文件夹。(注意:我在Angular应用程序的systemjs.config.js
文件中使用d3-scale/dist
(
场景 2
终端: 适用于 Linux 的 Windows 子系统 (bash for ubuntu for windows
(
节点版本:v8.11.1
npm 版本:v5.6.0
我使用相同的package.json
执行npm install
,这次它为我提供了d3-scale: v1.0.7
具有build/
文件夹,而不是dist/
d3 scale上的快速比较。
现在由于这种差异,我不得不更改systemjs.config.js
以指向本地机器的build
。
如果应用程序部署在服务器或云上,我不确定它可能在node_modules
中下载哪个d3-scale
,我可能必须为其提交修补程序。
问题
为什么首先存在差异?是什么原因造成的?
NPM 团队似乎解决了 v5.6.0 中的一个问题。
完全跨平台的package-lock.json。安装失败的可选 对一个平台的依赖不再将其从依赖关系中删除 树,这意味着现在应该生成 package-lock.json 跨平台一致!
源
因此,请尝试将您的Windows NPM升级到v5.6.0。它现在应该可以工作了。