Nexus 批量发布npm包

内网使用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

 目录结构如下:

运行脚本,结束。 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值