我们可以借助 verdaccio 这样的工具搭建私有 npm 注册点服务器,简称私有 npm 服务器。
但要方便的将大批 npm 包的 .tgz
文件导入我们的私有 npm 服务器则没有现成工具。本人遂构建本工具,以较为方便的将已经在本机的某些 node_modules 文件夹内的 npm 包,批量【发布】(publish
)到我们的私有 npm 服务器上。
本工具是一个 bash 脚本,内部调用 npm publish "文件夹路径"
命令来发布 npm 包至指定 npm 服务器。默认的 npm 服务器为 verdaccio 搭建的 http://localhost:4873
。
本工具分为两个独立的 bash 脚本,如下:
-
1-search-a-folder-and-download-all-tgz-files.sh
,用于《深度扫描一个文件夹中的所有已安装包,并自动从淘宝注册点下载其对应的tgz文件》 -
2-scan-cached-tgz-files-and-publish-them.sh
,用于《扫描已缓存的所有tgz文件,并将它们发布到私有注册点》。
source "<本工具路径>/1-search-a-folder-and-download-all-tgz-files.sh" ["<深度搜索所有node_modules文件夹的起始文件夹路径>"] ["<注册点服务器的URL>"]
假定该工具存放在 /d/tools
文件夹中。
-
从当前文件夹开始深度搜索:
source "/d/tools/1-search-a-folder-and-download-all-tgz-files.sh"
-
从指定文件夹(
/c/Users/wulechuan/AppData/Roaming/npm/
)开始深度搜索:source "/d/tools/1-search-a-folder-and-download-all-tgz-files.sh" "/c/Users/wulechuan/AppData/Roaming/npm/"
-
发布到指定的注册点:
source "/d/tools/1-search-a-folder-and-download-all-tgz-files.sh" "/c/Users/wulechuan/AppData/Roaming/npm/" "https://registry.npmjs.com"
source "<本工具路径>/2-scan-cached-tgz-files-and-publish-them.sh"
假定该工具存放在 /d/tools
文件夹中。
-
示例:
source "/d/tools/2-scan-cached-tgz-files-and-publish-them.sh"
- 无。