私有NPM仓库使用说明
随着项目的发展,已经出现了一些需要用到私有 NPM 仓库的场景,例如项目拆分后的公共逻辑、公共组件库、封装我们自已的埋点 SDK,这些代码不方便发布到 NPM 官方仓库,只能发布到公司自已的私有仓库上。为此我们基于Nexus搭建了公司自已的私有 NPM 仓库,这篇文档主要是私有 NPM 仓库的使用说明。
仓库 Web 管理界面访问地址
只能在公司网络访问,在家访问请使用 VPN 或远程控制到公司电脑使用
必须要登录以后才能查看发布的 NPM 包,不登录会显示 还没有发布任何 NPM 包
仓库主要说明
- 默认禁止用户注册功能,如需使用,请联系 关红福 注册帐号,帐号格式要求为公司邮箱 @ 前边的部分
- 提供有一个公共帐号 tenwit-fe 以供 CI 流水线使用,个人不推荐使用公共帐号
- 仓库提供代理功能,可以直接把整个 NPM 源设置为公司的私有仓库
发布私有 NPM 包
关于如何写一个 NPM 包,网上教程很多,此处不多做说明,有以下几点约定需要注意:
- name 约定
- 所有包的 package.json name 字段的值必须以
@tenwit-fe/和@tenwit/开头,例如@tenwit-fe/jimo @tenwit-fe用于浏览器端 NPM 包命名空间@tenwit用于服务器端 NPM 包命名空间
- 所有包的 package.json name 字段的值必须以
- publishConfig 约定
- 私有包的 package.json 必须有
publishConfig字段,必须设置成如下字段:
"publishConfig": { "registry": "https://npm.tenwit.vip/" } - 私有包的 package.json 必须有
在业务项目中使用私有 NPM 包
在业务项目仓库根目录下必须要有一个 .npmrc 配置文件(注意 yarn 1.x 支持 .npmrc,2.x 开始不支持),并提交到版本库中,主要内容如下:
# 默认使用淘宝源
registry=https://registry.npm.taobao.org
# @tenwit-fe 和 @tenwit 命名空间的,使用腾银私有 NPM 源地址
@tenwit-fe:registry=https://npm.tenwit.vip/
@tenwit:registry=https://npm.tenwit.vip/
# NPM 私有库密钥
//npm.tenwit.vip/:_auth=${TENONE_NPM_TOKEN}
always-auth=true
save-exact=true
自已想办法在系统环境变量中添加 TENONE_NPM_TOKEN,内容格式为 echo -n "帐号:密码" | openssl base64 (注意,echo openssl base64 为 Linux/Mac 命令,Windows 上生成密钥自行找方案解决)
window系统做法
1、git bash执行加密命令echo -n "tenwit-fe:hellonpm2021" | openssl base64得到 dGVud2l0LWZlOmhlbGxvbnBtMjAyMQ==
2、window设置环境变量 TENONE_NPM_TOKEN=dGVud2l0LWZlOmhlbGxvbnBtMjAyMQ==
3、重启系统
这样执行 yarn 命令时,yarn 会自动读取此配置文件并以环境变量中的密钥自动登录并下载依赖
团队约定统一使用 yarn 1.x

浙公网安备 33010602011771号