在我的本地环境中,我正在使用最新的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
安装依赖项吗?
答案 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/17979和https://github.com/npm/npm/issues/18286。)
如果您可以使用节点v8.14而不是v8.10,则将立即获得npm @ 6。如果没有,您可能会流到小河。