赞
踩
内网使用nexus搭建npm私服后,肯定是要上传一些常用的开发包的
一、外网下载需要的包
(1)创建一个package.json,并写上自己想要的包及其版本,如想要下载5.3.3的echarts
- {
- "dependencies": {
- "echarts": "5.3.3"
- }
- }
(2)利用node-tgz-downloader下载需要的依赖的tgz格式的包,这里可以参考使用我创建的脚本,在package.json同目录下创建一个文本,复制粘贴以下代码,保存,将文本的后缀改成.sh
- echo ">>> 正在下载未压缩依赖... <<<"
- npm i
- echo ">>> 下载完成 <<<"
- echo ">>> 正在下载tgz格式依赖... <<<"
- npm install node-tgz-downloader -g
- download-tgz package-json package.json
- echo ">>> 下载完成 <<<"
- echo ">>> 正在移动tgz文件... \n"
- mkdir tgz
- find ./tarballs -maxdepth 4 -name "*.tgz" | xargs mv -t ./tgz
- echo ">>> 移动完成 \n"
- echo ">>> 正在删除无用依赖... <<<"
- rm -r tarballs
- rm -r node_modules
- echo ">>> 外网操作完成 \n"
文件结构如下:

双击运行脚本(windows环境下.sh脚本需要git bash才能运行,装个git就行,都搞npm私服了,一般都会装git吧)
脚本运行后,目录下将多出一个tgz文件夹,里面便是下载好的tgz格式的依赖

(2)内网上传依赖到npm私服
将tgz文件夹拷贝至内网电脑,在同目录下创建一个脚本(地址、用户名、密码换成自己的)

- #!/bin/bash
- targetDir=./tgz
- publishRestful=你的npm私服的rest接口地址(参考地址,自行修改:ip:端口/service/rest/v1/components?repository=私服名称)
- echo ">>> 文件所在目录:$targetDir <<<"
- dir=$(ls -l $targetDir | awk '/.tgz$/ {print $NF}')
- cd $targetDir
-
- for file in $dir
- do
- echo ">>> $targetDir/$file 上传开始 \n"
- ret=`curl -u 你的私服用户名:你的私服密码 -X POST "$publishRestful" -H "Accept: application/json" -H "Content-Type: multipart/form-data" -F "npm.asset=@$file;type=application/x-compressed"`
- echo $ret
- echo ">>> $targetDir/$file 上传完成 \n"
- done
目录结构如下:

运行脚本,结束。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。