前端私库搭建(linux系统)
前端私库搭建(linux系统):[verdaccio]参考文献:https://www.jianshu.com/p/c9681016eae1https://blog.csdn.net/yyzzhc999/article/details/80097073https://www.jianshu.com/p/737d38e9bb1e软体版本: verdaccio 4.4.4 pm2: 4.4.0 nodejs: 8.x
verdaccio 简介
Verdaccio是一个简单的,零配置所需的本地私有npm注册表。无需整个数据库就可以开始!Verdaccio开箱即用,有 自己的小型数据库,并具有代理其他注册表的功能(例如npmjs.org),并在此过程中缓存下载的模块。对于那些希望扩展其存储功能的用户,Verdaccio 支持各种社区制造的插件,以挂接到Amazon s3,Google Cloud Storage等服务或创建自己的插件
verdaccio是由sinopia分支演化出来,因sinopia不再维护,由其他大神开发出这个分支来继续提供该服务
成功展示效果
注:请先确保verdaccio安装成功,且能够执行verdaccio命令再安装pm2来托管verdaccio,如下:
verdaccio + pm2 + nodejs搭配集体流程
安装nodejs
注:先node-v查看下是否当前系统是否已安装node,已安装则跳过node
node -v
未安装则依次执行如下命令 下载安装
wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz
解压及重命名:
xz -d node-v9.3.0-linux-x64.tar.xz
tar -xf node-v9.3.0-linux-x64.tar
mv node-v9.3.0-linux-x64 node-v9.3.0
设置node全局环境变量
vi .bash_profile // 修改用户环境变量文件
键入i,进入插入模式
export NODE_HOME=/usr/local/node-v9.3.0/bin
export PATH=$PATH:$NODE_HOME
Esc退出插入模式,shift+;后输入wq保存并且退出让修改的环境变量文件生效
source .bash_profile
验证
node -v
nginx配置
安装verdaccio
注:请使用有root权限的账号进行安装操作,否则会安装不成功
npm install -g verdaccio --unsafe-perm
注:verdaccio版本4.5以下支持node8.x;4.5以上不再支持node8.x如果强装算会成功但你跑的时候就会报错
紧接着直接运行verdaccio(注:先运行verdaccio,首次运行verdaccio会在root下自动生成verdaccio/config.yaml)
verdaccio
修改配置文件
vi /root/.config/verdaccio/config.yaml
在配置文件末尾最后添加监听端口(注:虽然默认监听4873但是此行代码必须添加)
listen: 0.0.0.0:4873 // verdaccio 默认端口
如果因为它默认监听端口4873而不添加此行代码,会导致后面给私库添加用户的时候失败,因为它未监听此端口外面发生什么它不知道
启动成功
安装pm2
pm2的安装基本没有什么问题,pm2只是用来托管verdaccio的进程,保持它的开启,当pm2开启verdaccio之后,verdaccio是无法被杀死进程的
npm install -g pm2 --unsafe-perm
启动
pm2 start verdaccio
查看是否启动成功
pm2 show verdaccio
npm改源
建议使用nrm来切换源
//如果是我们本地192的直接http://localhost:4873
设置账号
npm login
如果verdaccio没有修改配置文件添加listen: 0.0.0.0:4873则会报错如下
账号信息输入
Username: root
Password:
Logged in as test on http://192.168.0.101:4837/
账号权限配置继续通过命令打开配置文件
vi /root/.config/verdaccio/config.yaml
修改packages里的publish为刚刚创立的root账号
'*':
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish packages
# (anyone can register by default, remember?)
publish: test
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
修改完账号配置权限后,请执行重启服务命令
pm2 restart verdaccio
外部访问192.168.x.x:4873可查看页面登录账号
客户端发布和维护
建议使用nrm管理npm源 将源切至私库
nrm add mynet http://192.168.x.x:4873
nrm use mynet
打开你想共享的文件夹,
npm init
然后登录你刚刚创建的root账号
npm login
就可直接发布了
npm publish
如果verdaccio的配置文件没有在最末尾添加listen: 0.0.0.0:4873则无法publish,且会报错如下:
接下来就可以直接访问192.168.x.x:4873查看你刚刚发布的东西
如果要发布新版本,请确认你当前已切换到私库源,并登录了有发布权限的账号,将修改完后的文件夹中的package.json的版本中的version改动一下
{
"name": "ntr-ysb",
"version": "1.0.2",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "ljx",
"license": "ISC"
}
然后就可以执行发布了
npm publish
下载和使用
在你的文件夹中切换到私库源
nrm use mynet
然后下载你上传过得包
npm install xxx包名
至此!私库搭建完毕,发包完成,撒花恭喜~