npm 私有源配置
本文主要说明如何配置 npm 私有源以及配置之后如何使用私包进行前端开发。
配置
1. 创建私有源
私有源可以根据情况申请汉得私有源或自行搭建私有仓库(这里不做展开)。
需要注意,创建的私有仓库得是 npm
仓库。
一般情况下,有两个仓库:
- hosted:存放发布的依赖包的仓库,例如:http://nexus.saas.hand-china.com/content/repositories/hzero-ui/
- group:安装发布的依赖包的仓库组,此仓库组需要同步公网私有源和 Hzero 前端私有源,例如:http://nexus.saas.hand-china.com/content/groups/hzero-npm-group/
创建的私有源仓库需是
hosted
类型。
2. 发布代码到私有源
Hzero 前端是使用多包多模块的开发方式,每一个包模块都能单独发布 npm 包;要求项目的开发方式需遵循该开发方式,子模块的代码务必放置在
packages
目录下。
2.1 配置权限
在发布私有源前,需要配置 npm 权限
- 生成密钥
echo -n 'username:password' | openssl base64
- npm config edit
npm config edit
使用上一步生成的密码设置 _auth
,同时设置 always-auth=true
或者
npm config set always-auth true
npm config set _auth xxxx
2.2 更改版本号
找到待发布模块的 package.json
文件,更改 version
字段的版本。
发布的版本需要遵循 npm 社区发版规则:
- 内测版:alpha,例如1.0.0-alpha.0,1.0.0-alpha.1
- 公测版:beta,例如1.0.0-beta.0,1.0.0-beta.1
- 预览版:rc,例如1.0.0-rc.0,1.0.0-rc.1
- 正式版:直接使用数字版本号即可,例如1.0.0
根据具体情况选择要发布的版本类型。
注意:
- 待发布模块的
package.json
文件中如有private
字段,需将其去掉。
package.json
中的name
字段需唯一。
- 检查待发布模块
package.json
中的publishConfig 的 registry
值,该值默认为 Hzero 前端私有源,需要设置为自定义的私有源地址。
2.3 编译代码
进入待发布的子模块目录下,运行以下命令,生成lib
文件:
yarn transpile
# or
lerna run transpile
2.4 publish
在待发布的子模块内,执行以下命令:
# 如果已经配置package.json 中的 publishConfig 字段,在此可以省略--registry
npm publish [--registry <url>]
# 要发布测试版本或者其他版本请加上 tag 属性
npm publish xxx [--registry <url>] [--tag <alpha | beta | rc>]
注意:这里的
url
是上文创建的hosted
类型的私有源仓库。
3. 安装发布过的 npm 依赖
当某个项目要使用发布过的 npm 依赖时,和使用 npm
或者 yarn
安装一个公网依赖无差别,仅仅需要指定私有源地址:
yarn add xxx --registry 私有源地址
# or
npm install --registry 私有源地址
要安装alpha/beta/rc
版本时,请指定版本号
yarn add xxx@1.0.0-beta.0 --registry 私有源地址
或手动修改 package.json
中依赖的版本号,然后执行安装命令
yarn add --registry 私有源地址
注意:这里的
私有源地址
是上文创建的group
类型的仓库组。