切换语言为:繁体
docker搭建私服npm库,并拉取私服包

docker搭建私服npm库,并拉取私服包

  • 爱糖宝
  • 2024-11-09
  • 2037
  • 0
  • 0

在公司中,我们有时候写的公共的代码,需要提取出来,此时需要一个私服npm库,把这个公共代码做成一个包,然后在发布到自己的私服npm库上,就可以单独维护了。

这里我用docker for windows演示一下,首先是创建3个目录conf,storage,plugins

docker搭建私服npm库,并拉取私服包

然后在conf目录中新建config.yaml文件

storage: /verdaccio/storage
plugins: /verdaccio/plugins
web:
title: Verdaccio
auth:
htpasswd:
file: /verdaccio/conf/htpasswd
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs
server:
keepAliveTimeout: 60
logs:
-{type: stdout, format: pretty, level: http}

接着就可以跑docker容器了: docker run -d --name verdaccio -p 4873:4873 -v ./conf:/verdaccio/conf -v ./storage:/verdaccio/storage -v ./plugins:/verdaccio/plugins verdaccio/verdaccio

docker搭建私服npm库,并拉取私服包 跑起来后,先根据提示创建用户npm adduser --registry http://localhost:4873/,然后登录即可。

登录后就创建自己的npm包,这里我随便写一些,内容是指向index.js。package.json注意包的名字,前面可以是你的公司名称,后面是具体包名。

docker搭建私服npm库,并拉取私服包

再创建.npmignore,忽略node_modules

docker搭建私服npm库,并拉取私服包

接着创建.npmrc,告诉它把包上传到指定的私服npm地址上 

docker搭建私服npm库,并拉取私服包

接着,就可以执行npm publish --registry http://localhost:4873/把包推送到私服npm上,刷新页面,就可以看到这个包了。 docker搭建私服npm库,并拉取私服包

接着到另一个项目中测试能不能拉到这个包。我看网上其他人都是教设置npm set registry http://localhost:4873后,再拉取。其实这样是不太好的,因为这样直接修改了你的镜像源地址,会导致你在拉取其他互联网包时失败。

正确的做法是先创建.npmrc,然后指定关于这个名字下的所有包都要到这个服务器拉取:

docker搭建私服npm库,并拉取私服包

然后执行命令安装npm i @tianping/node, 可以看到拉取成功了 

docker搭建私服npm库,并拉取私服包

作者:天平
链接:https://juejin.cn/post/7435096176410165274

0条评论

您的电子邮件等信息不会被公开,以下所有项均必填

OK! You can skip this field.