使用package-lock.json安装特定节点版本的npm依赖项

时间:2018-12-21 15:01:43

标签: node.js npm aws-lambda

在我的本地环境中,我正在使用最新的node版本,但是在部署AWS Lambda函数期间,我必须使用v8.10.0

我已经创建了.nvmrc文件,并设置了v8.10.0,并且要安装node_modules,我只需运行:

nvm exec npm i

根本不使用package-lock.json的问题-甚至被npm i命令改变了。

node v8.10.0交付npm v5.6.0,但不提供npm ci命令。

还有其他方法可以使用锁定文件为v8.10.0安装依赖项吗?

2 个答案:

答案 0 :(得分:0)

您尝试过size_t吗? IIRC package-lock.json已更改为npm-shrinkwrap.json,但我不记得哪个版本

也就是说,运行npm shrinkwrap并确保将生成的json提交到您的存储库中/转移到AWS上

答案 1 :(得分:0)

不幸的是,在5.0之后的npm版本(特别是5.4及更高版本)中,“ npm install” 可以更新程序包锁定文件,并且没有避免这种现象的选项。

在npm> = 6.0中,您可以使用npm ci,它仅从所需的软件包锁定文件中安装。 (有关大量的背景故事/历史记录,请参见https://github.com/npm/npm/issues/17979https://github.com/npm/npm/issues/18286。)

如果您可以使用节点v8.14而不是v8.10,则将立即获得npm @ 6。如果没有,您可能会流到小河。

相关问题