利用verdaccio搭建npm源入门

我们在开发中一般会把npm源换成淘宝源(https://registry.npm.taobao.org)来加速下载软件包,有些公司也有做自己内部搭建的npm源,可以将一些内部包发布在其中,调用起来更加方便,那么可不可以做一款自己的npm源,将我们自己鼓捣的一些奇怪软件包发进去呢?vadaccio是一款零配置的个人私有npm源,让搭建一个私有源变得非常简便!使用它的docker镜像来安装更加便捷,我们需要准备的只有一台服务器,下面是搭建源的步骤。

启动vadaccio服务

首先拉取镜像:

docker pull verdaccio/verdaccio:4

然后后台运行镜像:

docker run -d --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio

运行后可以在localhost:4873看到如下图所示的管理界面。

管理界面

更改nginx配置

默认vadaccio服务是跑在服务器本地的4873端口,我们通过外网不能直接访问,所以需要修改一下nginx配置:

server {
    listen        4873;
    server_name    verdaccio;
    location / {
        # proxy to verdaccui
        proxy_pass    http://localhost:4873;
    }
}

然后重载nginx配置即可nginx -s reload,现在访问服务器的4873端口即可看到上面所示的管理界面。

发布软件包

类似发布npm包,我们需要初始化并制作一个npm包,其中要在根目录的package.json中填写一些关键的字段:

  • name: 发布软件包的名称
  • version: 版本信息
  • author: 作者信息
  • repository: 仓库信息
  • keywords: 搜索包的关键字
  • homepage: 包的主页,一般是软件主页或者导向readme

例如:

{
  "name": "copper-screw",
  "version": "0.0.1",
  "description": "useful skrew-like functions and classes",
  "main": "lib/index.js",
  "scripts": ...
  "repository": {
    "type": "git",
    "url": "..."
  },
  "keywords": [
    "utility"
  ],
  "author": "kovarxu",
  "license": "MIT",
  "bugs": {...},
  "homepage": "https://github.com/kovarxu/screw#readme",
  "devDependencies": {...}
}

准备工作做好后就可以开始发包,首先添加一个用户:

npm adduser --registry http://xxx:4873/

运行后会提示注册一个新用户,按照提示输入账号密码即可。接下来就可以使用publish发布:

npm publish --registry http://xxx:4873/

现在点击界面进去软件包,就可以看到详情了(图中是发了三次包的结果)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HRedRR62-1629035953376)(http://106.53.91.104/static/20201220/2.png)]

验证

然后找一个项目,尝试安装一下包:

npm i -S copper-screw --registry http://xxx:4873/

可以看到安装成功了

安装结果

当然如果去掉registry后缀,默认从cnpm源下载,则会提示软件包找不到,毕竟我们还没发到其他源上,这里就不赘述了,可以自行尝试。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值