如何搭建企业的npm仓库
前言
前段时间为公司搭建了npm仓库,在这里做下记录。
解决方案
使用CNPM来搭建公司内网, CNPM是一个Node.js的仓库,致力于打造私有的NPM注册服务。我们可以在CNPM发布私有的库。CNPM对NPM做了镜像服务,定期同步NPM的资源。
搭建CNPM的服务器
准备好环境
npm, node, mysql,npm账号
通过github下载项目源代码
git clone https://github.com/cnpm/cnpmjs.org.git
cd cnpmjs.org
安装依赖
sudo npm install
创建mysql数据库,数据库名cnpm
;
复制docs/db.sql生成数据库表
修改项目中./config/index.js文件,修改mysql数据库的用户名和密码;
mysqlServers: [
{
host: '127.0.0.1',
port: 3306,
user: 'root',
password: ''
}
],
mysqlDatabase: 'cnpm'
然后启动cnpm服务器
npm run dev
访问http://127.0.0.1:7002
应该就可以成功访问了。
发布cnpm包
安装cnpm客户端
sudo npm install -g cnpm
设置cnpm源
cnpm config set registry="http://127.0.0.1:7001" --scope=@cnpm //cnpm是模块前缀
进入要发布的项目目录下
npm init
按提示录入包的信息
封装包的信息
cnpm adduser
按照提示录入用户名,密码,邮箱,用户名与邮箱需与config文件中的admin配置一致。
cnpm login
按照提示录入用户信息。注意模块名称必须带前缀,如@xxx/name
,与config中的scopes配置对应,然后执行:
cnpm publish
到这里应该已经已经发布成功了。
安装私有的npm包
如果应用中所有的依赖库都是从公司内网下载的,我们可以给这个应用设置私有库。
npm config set registry http://xxx.com
如果只需某个依赖库是从公司私有库下载的,直接执行下面的命令
npm install xxx --registry=http://xxx.com