使用Verdaccio搭建npm私服

1、Verdaccio有什么用?

官方的说法我这里就不说了,什么npm注册表啊等等,说白了前端用这个可以搭建一个自有/私有的npm源仓库,就比如淘宝的cnpm或者你可以直接把npm的镜像源指向淘宝的源,而Verdaccio这个就是让你有一个自己的或者公司的私有npm镜像源,这非常有利于一个公司前端团队开发的包并不想被外部人员使用,但又不想拷贝来拷贝去的,所以我们开始使用该工具开发吧。

2、安装

前置条件:1、你的node版本必须是Node.js v12或更高版本。2、你需要有npm/yarn。

npm i verdaccio -g

3、运行

直接使用命令工具输入:verdaccio

verdaccio运行结果

到这一步,我们先别急着访问http://localhost:4873/,因为此时该服务上还没有你的包,所以无法进行访问。

4、使用nrm管理镜像源工具

该工具主要是用来方便你切换npm指向的镜像源,当然你可以直接使用
npm set registry http://localhost:4873

npm install -g nrm

nrm add mynpm http://localhost:4873

nrm use mynpm

到这里你的npm的镜像源已经切换成自有的了。

5、发布包

发布包和原先的npm发布包并没有什么差异。可以参考

5-1、注册npm用户

需要注意的是这里的用户注册不是npm.org上面的用户,而是你私服上的用户

npm add user 
image.png

到这里你就可以访问网站http://localhost:4873,并且我们使用刚刚注册的账号登录。

image.png

5-2、发布一个简单的包。

创建一个文件夹,并初始化package.json文件

{
  "name": "test-pack",
  "version": "0.0.1",
  "description": "这是测试私服的npm镜像源",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "十年之后",
  "license": "ISC"
}

你需要在根目录创建你的入口文件index.js

module.exports =  {
    name: '这是我的包',
    printFun: function () {
        console.log(this.name);
    }
}

在该项目下运行:npm publish,然后我们在访问网站http://localhost:4873

image.png

6、在你的新工程项目中使用你刚发布的包

npm install test-pack -D

然后你就可以使用你的包了。

7、猜想?如果我在镜像源中发布的包里没有我工程想要的包,他会不会报错?

比如我们在上述案例中创建了一个test-pack的包,但是在我们的工程中我想要安装vue/react等其他我这里不存在的包,他会不会安装失败?,答案是不会的,在Verdaccio中,如果你安装的包在你的私服上不存在,他会往官方的npm镜像源中查找。所以你不用担心,但是如果我想私服不存在往淘宝的镜像源查找可不可以?这当然是可以的,怎么操作?

在本文中 运行的截图我们可以看到Verdaccio配置文件的位置,我们进行配置修改

uplinks:
  npmjs:
    url: https://registry.npm.taobao.org

8、发布

发布其实没什么好说得了,无非就是在服务器上开启服务,使用forever启动我们得命令文件,在使用nginx映射我们得端口就好了

你可能感兴趣的:(使用Verdaccio搭建npm私服)