将node_modules上传到Nexus托管的NPM存储库

时间:2019-03-12 10:46:46

标签: node.js npm nexus

我们正在离线构建服务器中构建项目。因此,我们必须在本地网络Nexus中存储和维护我们所有的项目依赖项。

我已按照this指南在Nexus中创建了托管NPM注册表。我跳过了代理和组部分。现在,我想从本地工作站上载(并维护)所有项目NPM软件包(node_modules)到此存储库。我没有在Nexus存储库设置中看到“上传”按钮。如何在Nexus NPM注册表中正确上载和维护NPM软件包?可以通过Nexus GUI完成此操作,还是必须使用命令行?请注意,连结已断开与互联网的连接。

3 个答案:

答案 0 :(得分:1)

npm软件包的UI上传是在3.7.0版中添加的。

https://help.sonatype.com/display/NXRM3/Uploading+Components

答案 1 :(得分:1)

您无需上传 node_modules

您需要创建一个代理和一个组存储库。

然后您可以删除项目中的node_modulespackage-lock.json并运行npm install

因为您的托管没有这些包,它会从代理下载它们。

然后就可以在群里看到那些包了。

当您再次运行 npm install 时,它会下载表单 Nexus,而不是 NPM

下载速度将非常快

答案 2 :(得分:0)

用户界面不处理传递依赖项。

您还可以使用rest API直接管理组件,并上传所有.tgz包。

POST ​/v1​/components

例如,要将包my-npm-package-0.0.0.tgz上传到存储库npm-private,请使用以下命令:

curl -u user:password -X POST "http://localhost:8081/service/rest/v1/components?repository=npm-private" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "npm.asset=@my-npm-package-0.0.0.tgz;type=application/x-compressed"

完整的实时API规范可以在端点/#admin/system/api上找到

可以在https://help.sonatype.com/repomanager3/rest-and-integration-api/components-api

找到官方的联系文档。
相关问题