将第三方npm软件包发布到Nexus

时间:2019-03-20 15:55:58

标签: node.js npm build dependencies nexus

我们正在使用离线Jenkins进行构建。这意味着我们必须将所有依赖项存储在本地Nexus中。这与maven依赖关系没什么大不了的,但是事实证明,npm软件包上传存在问题。

有500多个npm依赖性,包括传递性依赖性。我制作了一个bash脚本,该脚本迭代项目的node_modules文件夹,并为其中的每个 package.json 调用npm publish --registry=nexus。我在尝试发布第三方软件包时遇到了很多问题,例如标记为私有或包含不需要的发布挂钩的软件包。

我对脚本进行了调整,以在发布前从 package.json 中删除不需要的属性,现在成功上传了99%的软件包。但是,对于一些不包含必填 name version 字段的 package.json 文件,我仍然会遇到一些错误。这怎么可能?如何解决?此外,发布过程需要30分钟以上。 Npm并不是为没有互联网而设计的,因此很难将这些第三方依赖项上传到Nexus。有没有比npm publish和肮脏的元数据修复更好的方法了?

或者在这种情况下,仅对项目中的 node_modules 进行版本控制会更明智吗?

0 个答案:

没有答案