logo
0
0
WeChat Login

npm-publish

拒绝版本玄学,一键同步到服服帖帖

功能特性

  • 从 npm 官方仓库下载指定版本的包
  • 自动发布到 CNB 私有仓库
  • 支持版本格式校验(x.y.z 或 latest)
  • 使用临时目录自动清理
  • 详细的日志输出

安装 pnpm

如果需要使用 pnpm 命令,可以通过以下方式安装并设置 CNB 仓库:

npm install -g pnpm --registry=https://npm.cnb.cool/zhiqiangwang/npm/-/packages/

同步脚本

1. sync.sh 脚本

功能介绍

  • 从指定的 Git 仓库克隆代码到本地
  • 检查并修复 package.json 中的 private 字段,确保其为 false 以允许发布
  • 自动检测并安装 pnpm 包管理器
  • 安装项目依赖并发布到指定的私有仓库
  • 发布完成后清理临时目录

环境变量定义表格

环境变量类型默认值说明是否必传
GIT_REPO字符串""Git 仓库地址✅ 必传
TAG字符串"main"克隆的分支/tag❌ 可选
TARGET_DIR字符串"code"克隆目标目录❌ 可选
TARGET_REGISTRY字符串"https://npm.cnb.cool/zhiqiangwang/npm/-/packages/"发布仓库地址❌ 可选
AUTH_TOKEN字符串"${CNB_TOKEN:-""}"发布令牌(可通过 CNB_TOKEN 兜底)✅ 必传

2. build.sh 脚本

功能介绍

  • 与 sync.sh 功能基本相同,从 Git 仓库克隆代码并发布到私有仓库
  • package.jsonprivate 字段的处理更加精准,只在字段存在且为 true 时才进行修改
  • 同样支持自动安装 pnpm、安装依赖、发布包和清理临时目录

环境变量定义表格

环境变量类型默认值说明是否必传
GIT_REPO字符串""Git 仓库地址✅ 必传
TAG字符串"main"克隆的分支/tag❌ 可选
TARGET_DIR字符串"code"克隆目标目录❌ 可选
TARGET_REGISTRY字符串"https://npm.cnb.cool/zhiqiangwang/npm/-/packages/"发布仓库地址❌ 可选
AUTH_TOKEN字符串"${CNB_TOKEN:-""}"发布令牌(可通过 CNB_TOKEN 兜底)✅ 必传

两个脚本的主要区别

  • private 字段处理:sync.sh 会无条件将 private 字段设为 false,而 build.sh 只会在 private 字段存在且为 true 时才进行修改
  • 其他功能:两个脚本的核心功能基本相同,都是用于从 Git 仓库克隆代码并发布到私有仓库

这两个脚本都设计为自动化处理 npm 包的发布流程,减少了手动操作的复杂性,确保了发布过程的一致性和可靠性。

About

拒绝版本玄学,一键同步到服服帖帖

92.00 KiB
0 forks0 stars1 branches0 TagREADMEApache-2.0 license
Language
Shell100%