You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搭配使用Prettier与@hapi/eslint-plugin

Hapi.js ESLint规则与Prettier冲突解决方案

核心逻辑

调整格式化和校验的执行顺序,先由Prettier处理通用格式规范,再由ESLint的@hapi/eslint-plugin执行hapi专属规则的修复,完全保留hapi的代码风格要求。

操作步骤

  • 安装必要依赖
npm install --save-dev eslint-config-prettier eslint-plugin-prettier
  • 调整ESLint配置(.eslintrc.json 或对应格式的配置文件)
{
  "extends": [
    "plugin:@hapi/recommended",
    // Prettier相关配置必须放在extends最后一位,自动关闭ESLint中与Prettier冲突的通用规则
    "plugin:prettier/recommended"
  ],
  "rules": {
    // 手动开启hapi要求的函数首行空行规则,开启自动修复
    "@hapi/hapi/function-padding": ["error", "always"]
  }
}
  • 配置格式化执行脚本(package.json)
{
  "scripts": {
    "format": "prettier --write . && eslint --fix ."
  }
}

IDE适配(以VSCode为例)

修改VSCode的settings.json配置,保证保存时的执行顺序符合要求:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }
}

效果验证

执行npm run format后,ESLint会自动给所有函数添加首行空行,Prettier不会主动删除该空行,完全符合hapi代码规范要求。如果后续遇到其他hapi专属规则与Prettier的冲突,都可以按照该思路,在ESLint rules中手动开启对应hapi规则即可。

内容的提问来源于stack exchange,提问作者ee0jmt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:15:07