为什么要搭建npm私有仓库?

原因:

方便,主要是用来管理公司内部开发的私有包,方便同事之间共同使用。
安全性,由于公司内部开发的模块和一些内容并不希望其他无关人员能够看到,但是又希望内部能方便使用。
加速,自己搭建npm 服务器,本身可以自带常用package的缓存。

 

刚开始准备用Sinopia来创建,因为据说这个操作简单也不需要建数据库,后来发现里面的坑实在是太多了,一查才知道Sinopia已经有超过两年没有人维护了,好了果断放弃,转用verdaccio.

1.1 服务端部署

前置工作:配置nodejs及npm环境(一般都已配置,就不多说了)

 安装verdaccio

npm install -g verdaccio

如果安装的时候报错 ERR! request to https://registry.npmjs.org/express failed, reason: getaddrinfo

可能是因为:公司使用了代理服务器,node.js没有走环境代理

解决方法: 设置下npm config set strict-ssl false 就行了

安装好之后,执行命令启动 verdaccio

verdaccio

启动后可以看到下面提示:

warn --- config file  - C:\Users\ASUS\AppData\Roaming\verdaccio\config.yaml
 warn --- Plugin successfully 
 warn --- Plugin successfully 
 warn --- http address - http://localhost:4873/

最上面一行是 verdaccio 的配置文件所在路径,最后一行是 verdaccio 服务的域名和端口号

然后打开 http://localhost:4873/,如果能正常访问,说明安装成功

 

外网访问配置

通过在config.yaml中修改服务默认的监听端口,从而可以通过外网访问 verdaccio 仓库。

listen: 192.168.xx.xx:4873

外网通过http://[IP | 域名]:[端口]的形式来访问。

账号配置

默认可以通过客户端npm adduser  添加账号。根据提示输入Username,Password,Email

添加成功后可通过 npm who am i 命令 验证是否登录成功

1.2 客户端配置

配置npm registry

推荐使用nrm来管理自己的npm代理,nrm可以快速修改,切换,增加npm镜像地址。

安装

npm install -g nrm

添加verdaccio仓库地址

nrm add verdaccio http://192.168.xx.xx:4873

切换私有仓库

nrm use verdaccio

1.3创建包并发布

1.账号创建成功后,创建npm包

npm init

2.然后根据提示输入相应的内容(如package name,description,author等),成功后可以在目录下看到生成了一个package.json配置文件

3.在相同的目录下创建index.js文件并编写内容,这样就完成了一个简单的npm包创建

4.发布包

npm publish

5.包发布成功后,访问 http://192.168.xx.xx:4873 可以查看发布的包

6.发布成功后,切换一个目录, npm install [包名] 可下载刚刚发布的包