verdaccio私有库搭建
首先在目录首页.npmrc
registry=http://localhost:4873/
官方文档:
https://verdaccio.org/zh-cn/docs/docker/
参考文档: https://juejin.cn/post/7096701542408912933
https://marrydream.top/tools/%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7/%E4%BD%BF%E7%94%A8Verdaccio%E6%90%AD%E5%BB%BAnpm%E7%A7%81%E6%9C%89%E6%9C%8D%E5%8A%A1%E5%99%A8/
其他参考文档:
https://juejin.cn/post/7096701542408912933
https://zhuanlan.zhihu.com/p/618257146
https://juejin.cn/post/7140193996147523621
https://zhaomenghuan.js.org/blog/npm-private-repository-verdaccio.html#docker-%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85
Verdaccio 安装
docker pull verdaccio/verdaccio
# 要运行docker 容器: 最后一个参数定义使用哪个镜像。
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
# http://0.0.0.0:4873
修改了配置文件后,可运行以下命令使配置生效
verdaccio -c config.yml
verdaccio -c /Users/xx/verdaccio_data/conf/config.yml
本地路径:
/Users/xx/verdaccio_data
根据路径运行:
docker run -d \
--name verdaccio \
-p 4873:4873 \
-v /Users/xx/verdaccio_data/storage:/verdaccio/storage \
-v /Users/xx/verdaccio_data/conf/config.yml:/verdaccio/conf/config.yml \
verdaccio/verdaccio
添加用户
npm adduser --registry http://0.0.0.0:4873/
npm adduser --registry http://localhost:4873/
提示让先添加用户,按照它的命令提示,进行添加用户操作
admin 123456
2196411859@qq.com
输入命令后会提示让输入账号密码和邮箱,输入完成后就自动登录了,此时就可以发布npm包到verdaccio私有库了。
发布npm包到verdaccio私有库
创建测试库
mkdir verdaccio-demo-publish
cd verdaccio-demo-publish
npm init -y
第二步: package.json添加files字段,配置npm发布时要上传的文件,此时只需要添加index.js, package.json文件会默认上传。
{
"name": "verdaccio-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"files": [
"index.js"
],
"keywords": [],
"author": "",
"license": "ISC"
}
发布包到verdaccio私有库:
npm publish --registry http://0.0.0.0:4873/
npm publish --registry http://localhost:4873/
删除:
npm unpublish olag --registry http://localhost:4873/ --force
npm unpublish ee-front --registry http://localhost:4873/ --force
问题:
我上传后npm 包npm i下载下来需要这样的结构,要怎么使用npm publish --registry http://localhost:4873/ 上传到verdaccio私有库
@olag
app
dist
package.json
native
dist
package.json
utils
dist
package.json
需要进入每个子目录,运行npm publish --registry http://localhost:4873/命令来上传每个子包到您的Verdaccio私有库。确保在每个子目录中运行该命令,以便将每个子包分别发布到Verdaccio。
例如,在app子目录中运行:
cd app
npm publish --registry http://localhost:4873/
cd native
npm publish --registry http://localhost:4873/
cd utils
npm publish --registry http://localhost:4873/
使用发布在verdaccio私有库的npm包
新建测试项目并初始化
mkdir verdaccio-demo-use
cd verdaccio-demo-use
npm init -y
安装上传到verdaccio私有库的包
安装刚刚发布到私有库的依赖
npm i verdaccio-demo-publish -S
npm i ee-front -S
安装依赖操作的时候,会发现报错了:
报错code是404,是因为默认情况下会从npm公共仓库下载包,而不是从我们私有仓库下载包, 依然需要在项目根目录添加 .npmrc文件,添加配置:
.npmrc
registry=http://localhost:4873/
测试使用:使用从私有库安装的包:
node index.js
const { add } = require('verdaccio-demo-publish')
console.log(add(1, 2))
测试使用:测试安装不在verdaccio私有库的包
npm i react -S