vlambda博客
学习文章列表

前端私库搭建(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,如下:

前端私库搭建(linux系统)

verdaccio + pm2 + nodejs搭配集体流程

安装nodejs

注:先node-v查看下是否当前系统是否已安装node,已安装则跳过node

 
   
   
 
  1. node -v

未安装则依次执行如下命令 下载安装

 
   
   
 
  1. wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz

解压及重命名:

 
   
   
 
  1. xz -d node-v9.3.0-linux-x64.tar.xz

  2. tar -xf node-v9.3.0-linux-x64.tar

  3. mv node-v9.3.0-linux-x64 node-v9.3.0

设置node全局环境变量

 
   
   
 
  1. vi .bash_profile // 修改用户环境变量文件

键入i,进入插入模式

 
   
   
 
  1. export NODE_HOME=/usr/local/node-v9.3.0/bin

  2. export PATH=$PATH:$NODE_HOME

Esc退出插入模式,shift+;后输入wq保存并且退出让修改的环境变量文件生效

 
   
   
 
  1. source .bash_profile

验证

 
   
   
 
  1. node -v

nginx配置

前端私库搭建(linux系统)

安装verdaccio

注:请使用有root权限的账号进行安装操作,否则会安装不成功

 
   
   
 
  1. npm install -g verdaccio --unsafe-perm

注:verdaccio版本4.5以下支持node8.x;4.5以上不再支持node8.x如果强装算会成功但你跑的时候就会报错

前端私库搭建(linux系统)

前端私库搭建(linux系统)

紧接着直接运行verdaccio(注:先运行verdaccio,首次运行verdaccio会在root下自动生成verdaccio/config.yaml)

 
   
   
 
  1. verdaccio

修改配置文件

 
   
   
 
  1. vi /root/.config/verdaccio/config.yaml

在配置文件末尾最后添加监听端口(注:虽然默认监听4873但是此行代码必须添加)

 
   
   
 
  1. listen: 0.0.0.0:4873 // verdaccio 默认端口

如果因为它默认监听端口4873而不添加此行代码,会导致后面给私库添加用户的时候失败,因为它未监听此端口外面发生什么它不知道

启动成功

前端私库搭建(linux系统)

安装pm2

pm2的安装基本没有什么问题,pm2只是用来托管verdaccio的进程,保持它的开启,当pm2开启verdaccio之后,verdaccio是无法被杀死进程的

 
   
   
 
  1. npm install -g pm2 --unsafe-perm

启动

 
   
   
 
  1. pm2 start verdaccio

查看是否启动成功

 
   
   
 
  1. pm2 show verdaccio

npm改源

建议使用nrm来切换源

 
   
   
 
  1. //如果是我们本地192的直接http://localhost:4873

设置账号

 
   
   
 
  1. npm login

如果verdaccio没有修改配置文件添加listen: 0.0.0.0:4873则会报错如下

前端私库搭建(linux系统)

账号信息输入

 
   
   
 
  1. Username: root


  2. Password:



  3. Logged in as test on http://192.168.0.101:4837/

账号权限配置继续通过命令打开配置文件

 
   
   
 
  1. vi /root/.config/verdaccio/config.yaml

修改packages里的publish为刚刚创立的root账号

 
   
   
 
  1. '*':


  2. # allow all users (including non-authenticated users) to read and


  3. # publish all packages


  4. #


  5. # you can specify usernames/groupnames (depending on your auth plugin)


  6. # and three keywords: "$all", "$anonymous", "$authenticated"


  7. access: $all


  8. # allow all known users to publish packages


  9. # (anyone can register by default, remember?)


  10. publish: test


  11. # if package is not available locally, proxy requests to 'npmjs' registry


  12. proxy: npmjs

修改完账号配置权限后,请执行重启服务命令

前端私库搭建(linux系统)

 
   
   
 
  1. pm2 restart verdaccio

外部访问192.168.x.x:4873可查看页面登录账号

客户端发布和维护

建议使用nrm管理npm源 将源切至私库

 
   
   
 
  1. nrm add mynet http://192.168.x.x:4873

  2. nrm use mynet

打开你想共享的文件夹,

 
   
   
 
  1. npm init

然后登录你刚刚创建的root账号

 
   
   
 
  1. npm login

就可直接发布了

 
   
   
 
  1. npm publish

如果verdaccio的配置文件没有在最末尾添加listen: 0.0.0.0:4873则无法publish,且会报错如下:

接下来就可以直接访问192.168.x.x:4873查看你刚刚发布的东西

如果要发布新版本,请确认你当前已切换到私库源,并登录了有发布权限的账号,将修改完后的文件夹中的package.json的版本中的version改动一下

 
   
   
 
  1. {

  2. "name": "ntr-ysb",

  3. "version": "1.0.2",

  4. "description": "",

  5. "main": "index.js",

  6. "scripts": {

  7. "test": "echo \"Error: no test specified\" && exit 1"

  8. },

  9. "author": "ljx",

  10. "license": "ISC"

  11. }

然后就可以执行发布了

 
   
   
 
  1. npm publish

下载和使用

在你的文件夹中切换到私库源

 
   
   
 
  1. nrm use mynet

然后下载你上传过得包

 
   
   
 
  1. npm install xxx包名



至此!私库搭建完毕,发包完成,撒花恭喜~