• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

服务器verdaccio 搭建私人 npm 服务

武飞扬头像
顾鸟
帮助1

1. 介绍

选择 Verdaccio 作为我们私有 NPM 仓库的平台,主要原因是免费、零配置,开箱即用。

2. verdaccio 安装和启动

安装 npm,pm2

安装并运行 verdaccio

npm i -g verdaccio
verdaccio

配置文件在 /root/.config/verdaccio/config.yaml (如果找不到配置文件,请先运行 verdaccio )。这里需要修改在最后一行添加监听端口,不配置的话,只能服务器本机访问

学新通

# 监听的端口 ,不配置,只能本机能访问
listen: 0.0.0.0:4873

使用 pm2 对 verdaccio 进行托管
学新通

通过浏览器访问 verdaccio 启动页,如果服务器 ip 4873 不能访问,请先放行 4873端口,以下是启动后的界面

学新通

2. 创建 npm 包

创建一个简单的 NPM 包项目,目录如下:

test
    ├── test.vue                  // 测试文件
    ├── index.js                  // 测试文件
    ├── package.json              // 包描述文件
    └── README.md                 // 包说明文档

一个 NPM 包,其中 name 和 version 是必需的,其他都可以省略,而且 name 不能与平台上已有包重名。

// package.json
{
  "name": "test",     
  "version": "1.0.0", 
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

3. nrm 对仓库管理

localhost 是服务器地址,客服端需要安装 nrm ,来管理仓库

// 安装 nrm
npm install -g nrm

// 添加地址到 nrm 中
nrm add [registry name] [registry address] 
nrm add verdaccio http://localhost:4873/

// 查看 nrm 镜像源地址
nrm ls

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  rednpm - http://registry.mirror.cqupt.edu.cn/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/ 
  verdaccio --- http://localhost:4873/

// nrm 切换 registry 地址
nrm use verdaccio
// nrm 删除 registry 地址
nrm del verdaccio

4. 添加用户

服务端添加用户,客户端登录用户。使用 nrm 切换镜像源为服务器地址
学新通

客户端镜像源切换为服务器地址,然后使用服务端创建的用户登录,可以使用 npm who am i 查看当前用户

删除用户:没有命令可用,只能去用户存储的路径修改文件,如果没有修改过配置,那么在~/.config/verdaccio/htpasswd

学新通

5. 限制用户查看包、发布包和删除包

verdaccio允许任何人创建账号,若没有配置verdaccio的配置文件config.yaml,则默认任何注册了verdaccio的开发都有publish权限。

htpasswd:存放创建的账号
学新通

config.yaml:verdaccio的配置文件,修改publish和unpublish权限,多个用户空格隔开

学新通

5. 发布 npm 包

在创建的 npm 的包根目录下,打开 cmd 窗口,执行 npm publish,或可在 package.json 脚本命令中定义,以下是发布成功的界面
学新通

学新通

6. 使用包

当前 npm 的镜像源要是存放 npm 私服的地址,不然无法获取到自定义包。如果私服中没有要下载的包,会自动从外服中下载

// 下载
npm i gn-test
// 使用
<template>
  <div>111</div>
</template>

<script>
import gnTset from 'gn-test'
export default {
  created() {
    gnTset(111)
  }
}
</script>

<style></style>

7. 更新包

如果我们要更新包,其中版本号 version 一定要修改,否则会更新失败,如下:
学新通
这里我就只改个版本号吧,更新包的命令仍然是 npm publish ,上传成功后,刷新页面可以看到新版本了。

学新通

8. 撤销包

# 撤销包的某个版本
$ npm unpublish [<@scope>/]<pkg>@<version>

# 撤销包
$ npm unpublish [<@scope>/]<pkg>

# 强制撤销
$ npm unpublish [<@scope>/]<pkg> --force

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfkiea
系列文章
更多 icon
同类精品
更多 icon
继续加载