
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
@qlover/fe-release
Advanced tools
A tool for releasing front-end projects, supporting multiple release modes and configurations, simplifying the release process and improving efficiency.
一个基于 @changesets/cli 构建的专业前端发布自动化工具,提供增强的工作流程,用于自动化 PR 管理和发布流程。
自动化版本管理
@changesets/cli 的可靠版本控制灵活的发布工作流
GitHub 集成
工作区支持
丰富的配置选项
fe-config.json 配置# 使用 npm
npm install @qlover/fe-release --save-dev
# 使用 yarn
yarn add @qlover/fe-release --dev
# 使用 pnpm
pnpm add @qlover/fe-release -D
# 创建发布 PR
fe-release -P
# 预览发布(不实际执行)
fe-release --dry-run
# 指定版本类型发布
fe-release --changelog.increment=major
# 发布多个包
fe-release --workspaces.change-labels=pkg1,pkg2 -P
# 指定发布目录
fe-release --publish-path=packages/core
# 发布到测试环境
fe-release --env=test -P
# 发布到生产环境
fe-release --env=prod -P
fe-release [options]
| 选项 | 描述 | 默认值 |
|---|---|---|
-v, --version | 显示版本号 | - |
-d, --dry-run | 预览模式,不实际执行更改 | false |
-V, --verbose | 显示详细日志 | false |
-p, --publish-path | 包发布路径 | - |
-P, --githubPR.release-PR | 创建发布 PR | false |
--env | 发布环境 | prod |
| 选项 | 描述 | 默认值 |
|---|---|---|
-b, --branch-name | 发布分支模板 | release-${pkgName}-${tagName} |
-s, --source-branch | 源分支 | master |
-i, --changelog.increment | 版本递增类型 | patch |
--changelog.skip | 跳过更新日志生成 | false |
--packages-directories | 变更包目录 | - |
-l, --workspaces.change-labels | 变更标签 | - |
| 变量 | 描述 | 默认值 |
|---|---|---|
FE_RELEASE | 启用/禁用发布 | true |
FE_RELEASE_BRANCH | 源分支 | - |
FE_RELEASE_ENV | 发布环境 | - |
FE_RELEASE_TOKEN | GitHub Token | - |
{
"release": {
"publishPath": "",
"autoMergeReleasePR": false,
"autoMergeType": "squash",
"branchName": "release-${pkgName}-${tagName}",
"PRTitle": "[${pkgName} Release] Branch:${branch}, Tag:${tagName}, Env:${env}",
"PRBody": "This PR includes version bump to ${tagName}",
"packagesDirectories": ["packages/*"],
"githubPR": {
"commitArgs": ["--no-verify"],
"pushChangedLabels": true,
"releaseName": "Release ${name} v${version}",
"commitMessage": "chore(tag): ${name} v${version}"
},
"changelog": {
"types": [
{ "type": "feat", "section": "#### ✨ Features", "hidden": false },
{ "type": "fix", "section": "#### 🐞 Bug Fixes", "hidden": false },
{ "type": "chore", "section": "#### 🔧 Chores", "hidden": true },
{
"type": "docs",
"section": "#### 📝 Documentation",
"hidden": false
},
{
"type": "refactor",
"section": "#### ♻️ Refactors",
"hidden": false
},
{ "type": "perf", "section": "#### 🚀 Performance", "hidden": false },
{ "type": "test", "section": "#### 🚨 Tests", "hidden": true },
{ "type": "style", "section": "#### 🎨 Styles", "hidden": true },
{ "type": "ci", "section": "#### 🔄 CI", "hidden": true },
{ "type": "build", "section": "#### 🚧 Build", "hidden": false },
{ "type": "revert", "section": "#### ⏪ Reverts", "hidden": true },
{ "type": "release", "section": "#### 🔖 Releases", "hidden": true }
]
}
}
}
graph LR
A[代码变更] --> B[运行 fe-release]
B --> C[版本更新]
C --> D[生成更新日志]
D --> E[创建 Git 标签]
E --> F[发布到 NPM]
F --> G[创建 GitHub Release]
graph LR
A[创建 PR] --> B[自动添加标签]
B --> C[创建发布 PR]
C --> D[更新版本和日志]
D --> E[CI 发布]
E --> F[发布和打标签]
发布被跳过
Error: Skip Release
解决方案:
FE_RELEASE 环境变量PR 创建失败
发布失败
启用详细日志:
fe-release -V
本项目采用 MIT 许可证 - 详见 LICENSE 文件
更多信息,请访问我们的文档。
FAQs
A tool for releasing front-end projects, supporting multiple release modes and configurations, simplifying the release process and improving efficiency.
The npm package @qlover/fe-release receives a total of 26 weekly downloads. As such, @qlover/fe-release popularity was classified as not popular.
We found that @qlover/fe-release demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.