繁体   English   中英

如何锁定云函数中的 npm 依赖项

[英]How to lock down npm dependencies in a cloud function

有没有办法控制部署云功能时安装的依赖项(和瞬态依赖项)的版本?

由于云函数运行时使用节点v6.11.5 ,我假设它使用的是与该节点版本v3.10.10分发的 npm v3.10.10 此版本的 npm 不支持package.lock (在npm v5.0.0添加)。

我在package.json中将所有版本设置为固定版本(删除^ )并将save-exact=true添加到我的.npmrc文件中,但这只会控制直接依赖项。 瞬态依赖不会以这种方式锁定。

有没有办法控制云功能中所有已安装的依赖版本? npm shrinkwrap.json受到尊重吗?

我在Cloud Functions Beta Testers组中发布了一个问题,他们确认在部署到 Cloud Functions 时不支持npm-shrinkwrap.json

产品经理的回复:

目前,我们不支持 npm-shrinkwrap.json 文件。 在考虑运行时策略时,我们正在考虑对依赖项管理进行一些改进,这是我们肯定会考虑的建议。

按照他们的建议,我在他们的公共问题跟踪器上创建了一个问题 如果这也是您想要的,请添加您对该问题的支持(通过给它加星标)!

作为高级 node.js 开发人员,拥有可重复安装的方法对于交付有价值的生产代码至关重要。

npm-shrinkwrap.json package-lock.jsonpackage-lock.json NPM 包作者/维护者的角度来看表现不同

package-lock.json不会发布到 NPM注册表(但它会保留在源代码中)并保证项目的任何作者/管理员都将获得相同的依赖项

npm-shrinkwrap.json旨在发布到 NPM注册表并保证不仅作者/管理员而且安装包的用户都获得相同的依赖项

由于您的项目与编写 NPM 包无关,因此您可以依靠npm-shrinkwrap.json使用任何NPM版本获得可重现的依赖关系树。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM