如何阻止npm run lint自动修复错误,仅执行代码风格校验?
问题解决方案
失效原因
你运行npm run lint --no-fix仍然自动修复,是因为npm的参数传递规则限制:npm run执行脚本时,只有--分隔符之后的参数才会被传递给内部调用的vue-cli-service,你直接写的--no-fix被npm本身识别消费,没有实际传到lint命令中。
正确执行命令
你可以二选一使用以下任意一种命令,实现仅校验不修复、不符合规则直接报错的效果:
- 基于npm脚本调用:
其中npm run lint -- --no-fix --max-warnings 0--是参数分隔符,后面的--no-fix会传给lint命令关闭自动修复,--max-warnings 0表示只要存在任何警告就直接返回非0退出码,触发GitHub Action工作流失败。 - 直接调用cli服务:
npx vue-cli-service lint --no-fix --max-warnings 0
补充配置校验
如果修改命令后仍然出现警告不报错的情况,检查你的Eslint配置文件(.eslintrc.js/.eslintrc.json等)中的规则配置,确认prettier相关规则的报错等级为error:
module.exports = { // 其他配置 rules: { "prettier/prettier": "error" } }
GitHub Action 示例配置
你可以直接在工作流的yml文件中使用如下步骤:
steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 18 - run: npm install - name: 代码风格校验 run: npm run lint -- --no-fix --max-warnings 0
内容的提问来源于stack exchange,提问作者user17298649
相关产品推荐
相关产品推荐

