通过编译构建任务发布/获取NPM私有组件
背景信息
NPM(Node Package Manager)是一个JavaScript包管理工具,NPM组件包即NPM管理的对象,而NPM私有依赖库就是管理和存储NPM组件包的一个私有仓库。
私有依赖库管理各种开发语言对应的私有组件包(开发者通俗称之为私服)。由于不同的开发语言组件通常有不同的归档格式要求,私有依赖库目的就在于管理私有开发语言组件并在企业或团队内共享给其他开发者开发使用。
本文档介绍如何通过编译构建任务发布私有组件到Npm私有依赖库、如何从Npm私有依赖库获取依赖包完成编译构建任务。
准备工作
- 已有可用项目。如果没有项目,请先新建CodeArts项目。
- 已创建NPM格式私有依赖库。
- 请添加当前账号对当前私有库的权限,请参考管理用户权限。
发布私有组件到NPM私有依赖库
- 下载私有依赖库配置文件。
- 登录制品仓库,选择私有依赖库,进入NPM私有依赖库。单击页面右侧“设置仓库”,记录仓库的路径。
- 单击“取消”返回私有依赖库页面,单击页面右侧“操作指导”。
- 在弹框中单击“下载配置文件”。
- 在本地将下载的“npmrc”文件另存为“.npmrc”文件。
- 登录制品仓库,选择私有依赖库,进入NPM私有依赖库。单击页面右侧“设置仓库”,记录仓库的路径。
- 配置代码仓库。
- 配置并执行编译构建任务。
- 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。
在页面中选择“空白构建模板”,单击“下一步”。
- 添加步骤“Npm构建”。
- 编辑步骤“Npm构建”。
- 工具版本按照实际选择,本文中选择“nodejs12.7.0”。
- 删除已有命令行,输入以下命令:
export PATH=$PATH:/root/.npm-global/bin npm config set strict-ssl false npm publish
- 单击“新建并执行”,启动构建任务执行。
待任务执行成功时,进入私有依赖库,可找到通过构建任务上传的Npm私有组件。
- 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。
从NPM私有依赖库获取依赖包
以发布私有组件到NPM私有依赖库中发布的Npm私有组件为例,介绍如何从Npm私有依赖库中获取依赖包。
- 配置代码仓库。
- 进入代码托管服务,创建Node.js代码仓库(操作步骤请参考创建云端仓库)。本文使用模板“nodejs Webpack Demo”创建代码仓库。
- 参考发布私有组件到NPM私有依赖库,获取“.npmrc”文件并上传至需要使用Npm依赖包的代码仓库根目录中。
- 在代码仓库中找到“package.json”文件并打开,将依赖包配置到dependencies字段中,本文中配置的值为:
"@test/vue-demo": "^1.0.0"
- 配置并执行编译构建任务。
- 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。
在页面中选择“空白构建模板”,单击“下一步”。
- 添加步骤“Npm构建”。
- 编辑步骤“Npm构建”。
- 工具版本按照实际选择,本文中选择“nodejs12.7.0”。
- 删除已有命令行,输入以下命令:
export PATH=$PATH:/root/.npm-global/bin npm config set strict-ssl false npm install --verbose
- 在代码仓库中,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。
- 单击“新建并执行”,启动构建任务执行。
待任务执行成功时,查看构建任务详情,在日志中找到类似如下内容,说明编译构建任务从私有依赖库完成了依赖包下载并构建成功。
NPM命令简介
在编译构建任务命令行中,还可以配置如下Npm命令,以完成其它功能:
- 删除私有依赖库中已存在的私有组件
npm unpublish @socpe/packageName@version
- 获取标签列表
npm dist-tag list @scope/packageName
- 新增标签
npm dist-tag add @scope/packageName@version tagName --registry registryUrl --verbose
- 删除标签
npm dist-tag rm @scope/packageName@version tagName --registry registryUrl --verbose
命令行参数说明:
- scope:私有依赖库路径,查看方法请参考发布私有组件到NPM私有依赖库。
- packageName:“package.json”文件中,name字段中scope之后的部分。
- version:“package.json”文件中,version字段对应的值。
- registryUrl:私有库配置文件中的对应scope的私有库地址url。
- tagName:标签名称。
以发布私有组件到NPM私有依赖库发布的私有组件为例:
- scope对应的值为“test”。
- packageName对应的值为“vue-demo”。
- version对应的值为“1.0.0”。
因此,删除此组件的命令应为:
npm unpublish @test/vue-demo@1.0.0