环境
名称 | 版本 | 供应商 |
---|---|---|
Windows 10 专业版 | 20H2 | Microsoft |
NPM | 7.21 | NPM |
Verdaccio | 5.1 | Verdaccio |
Docker Desktop | 20.10.8 | Docker |
依赖
# 检查 NPM 是否安装,正常情况下安装过 Node.js 的环境均会附带 NPM
npm -v
安装
NPM
# 推荐使用 NVM 配置安装 Node.js 后使用 NPM
Verdaccio
# 拉取镜像
docker pull verdaccio/verdaccio
# 启动容器
docker run --name verdaccio_server -d -p 4873:4873 verdaccio/verdaccio
# 检查 Verdaccio 是否运行正常
start http://localhost:4873/
配置
切换仓库源
标准
# 将 NPM 仓库源切换至 Verdaccio
npm config set registry http://localhost:4873/
# 验证仓库源切换是否成功
npm config get registry
使用 NRM
# 使用 NRM 注册 Verdaccio 仓库源为 private
nrm add private http://localhost:4873/
# 使用 NRM 将 NPM 仓库源切换 Verdaccio
nrm use private
# 查看可用仓库源,带 * 为当前使用的仓库源
nrm ls
用户注册
# 注册用户
npm adduser
# 根据提示输入用户名、密码与电子邮箱即可
Username: user
Password: password
Email: (this IS public) user@outlook.com
发布
标准
// package.json
{
"name": "modern-framework",
"version": "0.0.1",
"description": "",
"keywords": [
"modern",
"framework"
],
"author": "Nick.ZQ",
"license": "UNLICENSED",
// 发布时此值必须为 false
"private": false,
}
# 用户登录,根据提示输入用户名、密码与电子邮箱即可
npm login
# 发布组件
npm publish
或
# 发布组件时带上地址与用户信息参数
npm publish --registry http://user:password@localhost:4873/
使用配置文件
# 将用户信息使用 base64 进行加密
echo -n 'user:password' | openssl base64
# 加密后的用户信息
dXNlcjpwYXNzd29yZA==
# .npmrc
# 正常情况下使用淘宝仓库源
registry=https://registry.npm.taobao.org
# 发布时根据 scope 设置使用 Verdaccio 仓库源
@nick:registry=http://localhost:4873
# 使用加密后的用户信息通过 _auth 进行授权认证
_auth=dXNlcjpwYXNzd29yZA==
always-auth=true
// package.json
{
// @nick 是组件的 scope
"name": "@nick/modern-framework",
"version": "0.0.1",
"description": "",
"keywords": [
"modern",
"framework"
],
"author": "Nick.ZQ",
"license": "UNLICENSED",
// 发布时此值必须为 false
"private": false,
"scripts": {
/*
注意在不同系统环境下调用 NPM 配置变量的方法也不一样:
Windows:%npm_parameter%
Linux:$npm_parameter
*/
"publish-lib": "npm publish"
},
}
# 发布组件
npm run publish-lib
参考
如何上传发布自己的npm组件包
npm 为 指定组织下的包 配置数据源 .npmrc配置
npm publish 发布自己的npm包
npm scripts 使用指南
.npmrc配置文件
.npmrc 实用小技巧