搭建NPM私库-verdaccio

前言

公司内部统一使用一套相同的UI组件,将该组件发布到私有服务器上,方便不同子公司开发管理。

想法

通过网上相关网友推荐,使用verdaccio搭建为目前主流方案。

verdaccio

为什么选择verdaccio,因为sinopia到2015年10月后,已经早不维护了,似乎作者不见了踪影。而verdaccio是sinopia的一种新的web【react】端的实现形式,并且目前一直在维护中。

安装部署

#首先安装nodejs
yum install nodejs
#安装完成后,查看版本 
node -v 
#输出v6.17.3
#发现安装版本很低,觉得按照verdaccio后会有问题
# 安装verdacio
npm install --global verdaccio
# 启动
verdaccio
#不出所料启动异常
[root@izbp1dnj5vm2q9htc3s7bzz ~]# verdaccio
/usr/lib/node_modules/verdaccio/build/lib/cli.js:92
  (async () => {
         ^

SyntaxError: Unexpected token (
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object. (/usr/lib/node_modules/verdaccio/bin/verdaccio:3:1)

由于启动异常感觉应该是nodejs版本过低的原因,升级nodejs

升级nodejs

安装n,n是nodejs管理工具

npm install -g n
#安装nodejs最新版本
n latest
#若安装指定版本
n v13.1.0
#切换nodejs版本
n
#选择已安装的版本
o  node/13.1.0
installed : v13.1.0 (with npm 6.12.1)
#查看当前版本 node -v 
node -v
v6.17.1
#发现输出还是没更换
#修改配置文件
vim ~/.bash_profile
#将下面两行代码插入到文件末尾:
export N_PREFIX=/usr/local #node实际安装位置
export PATH=$N_PREFIX/bin:$PATH
#执行source使修改生效
source ~/.bash_profile
#查看当前版本 node -v 输出如下则切换成功
node -v
v13.1.0

升级好nodejs后重新安装

#重新安装
npm install --global verdaccio
#启动
 verdaccio
*** WARNING: Verdaccio doesn't need superuser privileges. Don't run it under root! ***
 warn --- config file  - /root/.config/verdaccio/config.yaml
 warn --- Verdaccio started
 warn --- Plugin successfully loaded: verdaccio-htpasswd
 warn --- Plugin successfully loaded: verdaccio-audit
 warn --- http address - http://localhost:4873/ - verdaccio/4.3.4

配置文件信息

# #号后面是注释
# 所有包的缓存目录
storage: ./storage
# 插件目录
plugins: ./plugins

#开启web 服务,能够通过web 访问
web:
  # WebUI is enabled as default, if you want disable it, just uncomment this line
  #enable: false
  title: Verdaccio
#验证信息
auth:
  htpasswd:
    #  用户信息存储目录
    file: ./htpasswd
    # Maximum amount of users allowed to register, defaults to "+inf".
    # You can set this to -1 to disable registration.
    #max_users: 1000

# a list of other known repositories we can talk to
#公有仓库配置
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated

    #代理 表示没有的仓库会去这个npmjs 里面去找 ,
    #npmjs 又指向  https://registry.npmjs.org/ ,就是上面的 uplinks 配置
    proxy: npmjs

  '**':
    # 三种身份,所有人,匿名用户,认证(登陆)用户
    # "$all", "$anonymous", "$authenticated"

    #是否可访问所需要的权限
    access: $all

    #发布package 的权限
    publish: $authenticated

    # 如果package 不存在,就向代理的上游服务发起请求
    proxy: npmjs

# To use `npm audit` uncomment the following section
middlewares:
  audit:
    enabled: true
# 监听的端口 ,重点, 不配置这个,只能本机能访问
listen: 0.0.0.0:4873
# log settings
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: verdaccio.log, level: info}

访问web地址

搭建NPM私库-verdaccio_第1张图片
web地址

使用pm2 守护verdaccio进程

安装pm2并使用pm2启动verdaccio,使用pm2托管的进程可以保证进程永远是活着的,尝试通过kill -9去杀verdaccio的进程发现杀了之后又自动启起来。推荐使用此种方式启动verdaccio.

安装pm2
npm install -g pm2 --unsafe-perm
3.2.2 使用pm2启动verdaccio
pm2 start verdaccio
这样verdaccio就启动成功了。

访问私库
http://IP:4873

你可能感兴趣的:(搭建NPM私库-verdaccio)