本文共 3091 字,大约阅读时间需要 10 分钟。
在工作开发的过程中,不可避免的会封装一些自己的组件,工具库,甚至脚手架等等。但受限于公司的规定,或者其他原因,这些封装好的npm包一般不会对外去发布,所以我们会选择架设自己的npm私服。
主流的npm私服部署方案包含verdaccio以及nexus。前者是基于nodejs的私服,而后者用途更为广泛,比如maven私服基本会基于nexus。个人感觉verdaccio更小而美一些,所以本文主要介绍verdaccio的部署方式。
之前本来想在centos上去直接安装,发现由于系统版本低,node版本太高导致报错如下:
node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node)
网上看解决办法是升级GLIBC的版本或手动编译nodejs。GLIBC作为centos底层库升级之后恐怕会引起别的问题,而手动编译也不知道nodejs的使用会有什么问题。考虑到我也是个人使用,所以直接选择了docker进行安装。
首先安装docker的客户端,访问,点击下载安装即可。
由于国外网速比较慢,而且docker下载的东西几乎都很大,所以很有必要配置加速镜像。我这里使用的阿里云的镜像加速服务。你需要先注册一个阿里云账户。之后的使用时免费的。
注册成功之后进入阿里云控制台,点击如下镜像加速服务
有了docker,一切都变得很简单。首先打开命令行工具,执行以下命令:
接下来就是启动服务了:
$ docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
verdaccio默认的启动端口是4873,故以下命令式将本机的相同端口映射到docker。
No Package Published Yet. // 还没有发布任何包To publish your first package just: // 按如下操作进行发布1. Login // 登陆npm adduser --registry http://192.168.0.201:48732. Publish // 发布npm publish --registry http://192.168.0.201:48733. Refresh this page. // 刷新网页
赶紧来试一下:
创建用户并登陆。
话说每次发布都要加上--registry
的参数,略微显得有些low,而且多人协作的时候,我们希望项目的发布地址就是自己的私服,其实这个更改可以分别从全局或项目中配置。
修改~/.npmrc。即修改全局的npm服务器地址。比如我们一般设置淘宝的镜像源就会这样设置。
YanandeMac-mini:~ yananliu$ cat .npmrcregistry=https://registry.npm.taobao.org/
以上,可以修改这个地址到你的私服地址,这样就会全局生效,下载的时候也会通过私服,若私服中没有就会再去npm官方源去下载。
当然,官方源是很慢的,我们实际是希望从私服下载,私服不存在就从淘宝源下载。这个需要修改一下刚才启动docker的配置
$ docker run -it -d --rm --name verdaccio -p 4873:4873 -v C:\Users\Yanan\verdaccio\:/verdaccio/ verdaccio/verdaccio
比如刚才我执行了上边的命令,发现我配置的挂载目录出现了storage
文件夹
该文件可以在https://raw.githubusercontent.com/verdaccio/verdaccio/master/conf/default.yaml这里直接复制粘贴,但不幸的是,这个文件被Q了,我把他放在文末,大家自行下载吧。
下载完成后复制文件到截图中的文件夹/conf/config.yaml
,并修改上游地址,然后重启docker即可。
uplinks: npmjs: url: https://registry.npm.taobao.org/
上边介绍了全局配置,有点跑题,现在来说下不用全局配置,仅用项目配置。有两种途径:
publishConfig
# package.json{ "publishConfig": { "registry": "http://192.168.0.201:4873" }}
文章最后,在介绍一款便捷切换源的工具nrm
# 安装$ npm install nrm -g# 添加源$ nrm add local http://192.168.0.201:4873/# 查看可用源$ nrm ls npm -------- https://registry.npmjs.org/ yarn ------- https://registry.yarnpkg.com/ cnpm ------- http://r.cnpmjs.org/* taobao ----- https://registry.npm.taobao.org/ nj --------- https://registry.nodejitsu.com/ npmMirror -- https://skimdb.npmjs.com/registry/ edunpm ----- http://registry.enpmjs.org/ local ------ http://192.168.0.201:4873/# 切换私服nrm use local# 尝试安装个包$ npm install webpack-cli# 很快就安装完成了+ webpack-cli@4.2.0added 63 packages from 39 contributors and audited 63 packages in 13.214s6 packages are looking for funding run `npm fund` for details
verdaccio的配置文件下载
转载地址:http://vvjo.baihongyu.com/