Mas*_*oob 5 node.js npm npm-install
发生了什么
在 Package.json 中:
"dependencies": {
...
"node-sass": "^4.13.0"
...
}
Run Code Online (Sandbox Code Playgroud)
跑步npm install
在 package-lock.json 中:
"node-sass": {
"version": "4.13.1",
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的
1.
删除:
然后运行npm install
2.
删除:
然后运行npm install --cache /temp/empty-cache
3.
删除:
然后运行npm update
结果:node-sass 未被检测为可更新
4.
跑步npm install node-sass@4.13.1
这显然可以将它们同步备份,但感觉不对,因为这可能会在我不知情的情况下发生在其他依赖项上。
问题
[编辑]
如果有人有一个不涉及手动更新依赖项的答案,我仍然会喜欢这个答案
小智 6
这解决了我的问题
npm install --package-lock-only
这些依赖项正是您所配置的:
在您package.json定义的中^4.13.0,这^意味着您可以很好地安装该模块的最新版本(主要版本为 4)。因此,当您运行时,您将安装与该semver 范围npm install匹配的所有依赖项。您可以更深入地了解semver。
如果您想锁定版本,您需要写入"node-sass": "4.13.0"并package.json重新创建package-lock.json
此外,要安装其中的内容,package-lock.json您需要运行npm ci. 如果您运行,npm install您将更新锁定文件中的依赖项(将被更新)
当依赖版本不同步时,如何对齐 package.json 和 package-lock.json?
重新生成包锁
例子:
npm init --yes
npm init fastify@2.0.0
// now package-lock has 2.0.0
rm -rf node_modules/
npm install
// now package-lock has 2.0.0 still
rm package-lock.json
npm install fastify@2.5.0 --no-save
npm install
// now package-lock has 2.5.0 (the version is loaded by node_modules tree)
rm package-lock.json
rm -rf node_modules/
npm install
// now package-lock has 2.11.0
Run Code Online (Sandbox Code Playgroud)
因此,如果您的文件不同步,请在不使用锁定文件的情况下运行安装
| 归档时间: |
|
| 查看次数: |
22578 次 |
| 最近记录: |