eslint-plugin-kqinfo
v0.1.5
Published
KQInfo ESLint 规则集
Readme
eslint-plugin-kqinfo
KQInfo 通用 ESLint 规则集。
已内置规则
kqinfo/no-env-hardcoded-redirect(文档)- 禁止通过
process.env.REMAX_APP_PLATFORM分支,并在分支内直接硬编码window.location.href/assign/replace跳转 URL;建议统一从@/config/env.ts读取跳转地址。
- 禁止通过
kqinfo/no-direct-remax-app-env-check(文档)- 禁止在业务代码中直接使用
process.env.REMAX_APP_ENV判断环境,应通过envService导出的函数判断。
- 禁止在业务代码中直接使用
安装
yarn add -D eslint-plugin-kqinfo使用
方式一:推荐配置
// .eslintrc.js
module.exports = {
extends: ['plugin:kqinfo/recommended'],
};方式二:按规则单独启用
// .eslintrc.js
module.exports = {
plugins: ['kqinfo'],
rules: {
'kqinfo/no-env-hardcoded-redirect': 'error',
'kqinfo/no-direct-remax-app-env-check': 'error',
},
};第二条规则示例
错误示例
if (process.env.REMAX_APP_ENV === 'production') {
doSomething();
}正确示例
import { isProd } from '@/utils/envService';
if (isProd()) {
doSomething();
}规则示例
错误示例
if (process.env.REMAX_APP_PLATFORM === 'production') {
window.location.href = 'https://wx.cqrenji.cn/hu-patients/p40005/#/pages/onlineQuery/index';
} else {
window.location.href = 'https://wx.cqrenji.cn/hu-patients-dev/p40005/dev/#/pages/onlineQuery/index';
}正确示例
import { onlineQueryUrl } from '@/config/env';
window.location.href = onlineQueryUrl;本地测试
npm test发布
# 1) 为本次变更新增 changeset 说明(会生成 .changeset/*.md)
npm run changeset
# 2) 生成版本号与 CHANGELOG.md
npm run changeset:version
# 3) 提交版本文件后发布到 npm
npm run changeset:publishGitLab CI 自动发布(自部署)
仓库已提供 .gitlab-ci.yml,包含 test、release、publish 三个阶段:
test:普通分支提交时执行npm test。release:默认分支 push 时,若存在 changeset,则自动执行changeset version、提交版本变更并打vX.Y.Z标签。publish:当推送v*标签时自动执行npm publish。
在 GitLab 项目变量中至少配置:
RELEASE_GITLAB_TOKEN:用于 push release commit 与 tag,建议使用具备write_repository权限的 Project Access Token。NPM_TOKEN:npm 发布令牌。NPM_TOKEN轮换要求:npm 发布相关令牌最长有效期为 90 天,需在到期前更新 GitLab CI 变量中的NPM_TOKEN,否则会在发布阶段出现401 Unauthorized。GITLAB_RELEASE_USER_NAME(可选):发布提交用户名,默认release-bot。GITLAB_RELEASE_USER_EMAIL(可选):发布提交邮箱,默认release-bot@local。
建议将上述变量设置为 Masked + Protected,并仅允许受保护分支/标签触发发布。
