如何在云功能中锁定npm依赖项

问题描述 投票:2回答:2

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

由于cloud function runtime使用节点v6.11.5,我假设它使用分布在该节点版本的npm v3.10.10。这个版本的npm不支持package.lock(在npm v5.0.0中添加)。

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

有没有办法控制云功能中所有已安装的依赖版本? npm shrinkwrap.json很荣幸吗?

node.js npm google-cloud-functions yarnpkg
2个回答
1
投票

我在a question小组发布了Cloud Functions Beta Testers,他们确认在部署到云功能时npm-shrinkwrap.json不受尊重。

产品经理的回复:

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

正如他们所建议的,我在他们的公共问题跟踪器上创建了an issue。如果这也是您想要的,请添加您对该问题的支持(通过主演)!

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


0
投票

npm-shrinkwrap.jsonpackage-lock.json behave differently仅从NPM包作者/ mantainer的角度来看

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

相反,npm-shrinkwrap.json意味着要发布到NPM注册表,并保证不仅作者/ mantainers而且安装包的用户获得相同的依赖。

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

© www.soinside.com 2019 - 2024. All rights reserved.