如何在公司搭建npm本地仓库--超详细教程

5,126 阅读2分钟

背景:

在公司中,为了提高工作效率,我们会做一些公用的js库,或者vue组件,react组件.这样下次再用到的时候可以直接npm install一下就可以了,大大提高工作效率.

然而把这些东西直接放在npmjs.com上面,所有人都可以看到,缺乏保密性.那么问题来了,可不可以在公司局域网搭建一个npm仓库呢,答案当然是可以的

基于我前几天搭建的npm仓库,这里给大家介绍一下

环境:

  • CentsOS 6.5
  • gcc
  • g++
  • nodejs
  • make
  • nrm
  • python 2.7
  • sinopia

注意事项(踩过的坑)

  • make可能有些linux没有默认安装,需要手动安装一下,否则无法编译
  • python必须是2.x版本,3.x版本不支持sinopia

正式开始(yum推荐使用阿里云镜像,npm推荐淘宝镜像)

  1. 安装一些必要的包
yum install -y make gcc gcc-c++ nodejs
npm i sinopia nrm -g
  1. 运行sinopia,它是本地npm仓库的核心
sinopia

这个时候,打开http://localhost:4873可以看到sinopia自带的一个web页面,可以显示本地有哪些包,并且可以登录,然而现在还没有注册,接下来就是注册sinopia

  1. nrm是一个仓库管理工具,nrm ls命令可以查看电脑上的所有npm仓库,我们先新建本地仓库[name]是仓库的名称,比如localNpm,或者用公司名.[url]是建立仓库的那台电脑的ip地址加端口,比如http://192.168.2.100:4873
nrm add [name] [url]
nrm use [name]
  1. 接下来就可以添加用户了
npm adduser

运行这句话会提示输入用户名,密码,邮箱,输入完成就可以了.以后需要登录的话就运行

npm login

退出登录运行

npm logout
  1. 发布包 我们先新建一个文件夹,注意发布包的名子不可以是别人已经发布过的,比如vue,不然会报错
npm init -y
npm publish

npm init -y 可以初始化本地仓库,会生成package.json文件,里面包含一些基本的信息

npm publish 顾名思义,就是把包发布到本地仓库,不出意外的话,现在打开http://192.168.2.100:4873就会发现多出了一个包,就是刚刚发布的那个

  1. 使用包,和我们平时使用npm的方式是一样的
npm install [name] -S
  1. 更新包,代码更新了之后怎么发布新版本呢,很简单,只需要在package.json文件里修改一下版本号即可,比如1.0.0 => 1.0.1,然后
npm publish
  1. 删除包,包发布完,如果不想用了,该怎么删除呢,很简单,只需要
npm unpublish [name]

即可,注意这里的登录用户必须是发布包的作者

教程到此就结束了,有疑问的小伙伴欢迎留言哦