服务器verdaccio 搭建私人 npm 服务
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
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13