【发布时间】:2019-06-03 03:00:13
【问题描述】:
我有一个项目,我使用两台不同的笔记本电脑进行工作。有时我会在我的项目中添加额外的包,所以我必须使用npm install <package-name> (duh)。当我这样做时,我git push 更新了新的package.json 和package-lock.json 文件,当我切换计算机时,我必须git pull 进行这些更改,然后再次运行npm install 以将该包放到另一台计算机上。
我最近注意到并开始关心一台笔记本电脑不断在每个软件包版本号的开头添加插入符号 (^)。例如:
一台计算机将软件包版本#s 设置为如下所示:
"regexpu-core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"requires": {
"regenerate": "1.4.0",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
},
另外设置包版本#s如下:
"regexpu-core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"requires": {
"regenerate": "^1.2.1",
"regjsgen": "^0.2.0",
"regjsparser": "^0.1.4"
}
},
我知道插入符号 (^) 表示版本不是 100% 精确,但我想弄清楚为什么我的不同笔记本电脑会为软件包版本创建不同的格式!我检查了this SO question,它对~ 和^ 之间的差异有一些很好的解释,但我没有找到任何解释为什么npm 有时会添加或删除插入符号(^)。我还查看了this npm issue on Github,它建议查看npm 配置设置,但我的两台笔记本电脑都具有相同的设置:
-
npm config get save=true(两台电脑) -
npm config get save-prefix=^(两台电脑) -
npm config get save-exact=false(两台电脑)
一台笔记本电脑正在运行npm 版本5.6.0,但我刚刚将其更新为6.5.0。另一台计算机运行版本6.4.1,但我也将其更新为6.5.0。我尝试在两台计算机上的项目中运行npm install,但我仍然发现一台计算机总是删除^,而另一台总是添加^。
如果我遗漏了什么,请告诉我。感谢您的帮助!
【问题讨论】:
标签: npm npm-install