1、Verdaccio有什么用?
官方的说法我这里就不说了,什么npm注册表啊等等,说白了前端用这个可以搭建一个自有/私有的npm源仓库,就比如淘宝的
cnpm
或者你可以直接把npm
的镜像源指向淘宝的源,而Verdaccio
这个就是让你有一个自己的或者公司的私有npm
镜像源,这非常有利于一个公司前端团队开发的包并不想被外部人员使用,但又不想拷贝来拷贝去的,所以我们开始使用该工具开发吧。
2、安装
前置条件:1、你的node版本必须是Node.js v12或更高版本。2、你需要有npm/yarn。
npm i verdaccio -g
3、运行
直接使用命令工具输入: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
到这里你就可以访问网站http://localhost:4873
,并且我们使用刚刚注册的账号登录。
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
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映射我们得端口就好了