使用sinopia搭建npm私有仓库

sinopia 的优点:

 

  1. 配置简单,对环境依赖少(仅 node 就够了)
  2. 支持 windows 系统下运行
  3. 不需要数据库,sinopia内置一个数据库了
  4. 是比较主流的方案

 

1.安装sinopia包

使用sinopia搭建npm私有仓库

使用sinopia搭建npm私有仓库

2.配置npm

使用sinopia搭建npm私有仓库

3.启动sinopia,自动生成的工作目录如下

(通过第一个warn可以看到具体路径):

使用sinopia搭建npm私有仓库

4.打开这个文件,config.yaml默认配置

如下图

使用sinopia搭建npm私有仓库

5.打开浏览器地址 http://localhost:4873/

就可以看到如下内容

使用sinopia搭建npm私有仓库

表示我们私有的库已经搭建好了

 

6.接下来我们就向库里面上传npm包

7.npm官网创建npm账户

npm网站地址:https://www.npmjs.com/

npm网站注册地址:https://www.npmjs.com/signup

使用sinopia搭建npm私有仓库

 

8.命令行登录

使用sinopia搭建npm私有仓库

 

9.验证登录是否成功

使用sinopia搭建npm私有仓库

表示登录成功了。

 

10.创建npm库

使用sinopia搭建npm私有仓库

11.按照提示输入相应内容

使用sinopia搭建npm私有仓库

12.可以看到目录下增加了一个配置文件

使用sinopia搭建npm私有仓库

 

13.查看配置文件

使用sinopia搭建npm私有仓库

14.同级目录下新建index.js并编写内容

使用sinopia搭建npm私有仓库

使用sinopia搭建npm私有仓库

15.到这里我们一个简单的npm包就创建完成了,接下来我们来发布npm包

 

16.发布npm包

使用sinopia搭建npm私有仓库

17.验证是否发布成功

换一个目录,下载我们刚刚发布的npm包

使用sinopia搭建npm私有仓库

查看下载结果,下载成功

使用sinopia搭建npm私有仓库

说明刚刚已经发布成功了

 

18.修改监听端口

监听端口默认没有,只能在本机访问,添加后可以通过外网访问。

使用sinopia搭建npm私有仓库

19.团队使用

(1)安装nrm换源工具

npm install -g nrm 
(2)添加私有的NPM仓库镜像地址
nrm add name http://XX.XXX.XX.XX:4873
(3)查看镜像地址列表
 nrm ls 查看可用仓库
(4)使用本址的镜像地址

    nrm use name

(5)安装依赖

npm install 依赖名

例如:npm install chenna_npm

(6)依赖成功,本地成功安装依赖包

 

20. 版本更新

npm version <update_type> -m "<message>"

其中update_type 有三种:

patch增加一位补丁号(比如 1.1.1 -> 1.1.2)

minor增加一位小版本号(比如 1.1.1 -> 1.2.0)

major增加一位大版本号(比如 1.1.1 -> 2.0.0)

比如:

npm version patch -m "Version %s - v1.0.2"

最后提交更新的版本:

npm publish

21. 舍弃某个版本的模块

npm deprecate [email protected]"< 1.0.2" "critical bug fixed in v1.0.2"
 

22. 撤销自己发布的版本。

这只是一个测试的包,最好当然还是撤销下来

//删除要用force强制删除。超过24小时就不能删除了。自己把握好时间。

npm --force unpublish chenna_npm

23. 注意事项

a.发布的时候用国内镜像会报错,我们应使用默认的:

npm config set registry http://registry.npmjs.org 

b.npm包package.json中registory属性一定要填写,每次publish npm时package.json中version版本一定要大于上一次。

c.npm publish failed put 500  unexpected status code 401这样的报错信息,往往是没有登录成功,操作npm login

d.npm包的name是唯一的,如果有同名,发布时会报错

24.最后推荐一个网址

http://javascript.ruanyifeng.com/nodejs/npm.html#toc19