引言
在前面一篇教程中,通过 nexus 搭建了 maven 的私服,并通过脚本将本地的依赖文件批量上传到私服中,本文介绍通过 nexus 搭建 npm 私服,同样也通过脚本将本地依赖文件同步到私服中。
创建 npm 私库
- 创建一个 **npm(hosted)**类型的私库
- 创建一个** npm(group)**仓库组对外服务,将本地的仓库 npm-hosted 添加到仓库组中,如果是外网情况可以在创建一个 proxy 类型的仓库添加在仓库组中。
收集 npm 依赖
- 找一个依赖比较多项目(尽量一次性同步大部分的依赖,后面进行相应补充就行),在有外网的环境中对代码进行编译生成
package-lock.json
。 - 打开
package-lock.json
,从 resolved 字段中获取所有的 tgz 文件下载链接
- node-tgz-downloader
node-tgz-downloader 是一个根据 package-lock.json / package.json 文件下载所有 node_modules tgz 文件的工具包
- 安装 node-tgz-downloader:
npm install node-tgz-downloader -g
- 下载 tgz 文件:
download-tgz package-json path/to/package.json
- node-tgz-downloader 默认会在当前目录下生成一个 tarballs 文件夹,下载好的 tgz 都位于这个文件夹中
编写脚本批量收集并上传
nexus 提供了上传单个依赖组件的 API,通过这个 API 进行批量上传