知海

JavaScript:graphql-eslint(ESLint 插件)

graphql-github-io-zh-Hans生态项目与库
markdown 复制代码
# JavaScript:graphql-eslint(ESLint 插件)

## 简介

graphql-eslint 是一个用于 ESLint 的插件,它将 GraphQL AST(抽象语法树)深度集成到 ESLint 核心中,作为自定义解析器工作。通过该插件,开发者可以在标准的 ESLint 流程中检查 `.graphql` 文件及嵌入在 JavaScript/TypeScript 中的 GraphQL 代码,实现统一的代码风格和静态错误检查。

## 功能特点

- **GraphQL 解析器**:将 GraphQL 文档转换为符合 ESLint 规则的 AST,使 ESLint 可以直接分析 GraphQL 语法。
- **丰富的规则集**:内置大量 GraphQL 专属规则,如命名约定、操作匿名限制、字段重复、Schema 安全校验等。
- **无缝集成**:与现有 ESLint 配置、编辑器插件和 CI 流程完美兼容。
- **支持 TypeScript**:可与 `@typescript-eslint` 等解析器配合,覆盖不同类型文件。

## 安装

使用 npm 安装插件:

```bash
npm install --save-dev @graphql-eslint/eslint-plugin

或使用 yarn / pnpm:

bash 复制代码
yarn add --dev @graphql-eslint/eslint-plugin
bash 复制代码
pnpm add --save-dev @graphql-eslint/eslint-plugin

配置示例

在 ESLint 配置文件(如 .eslintrc.js)中,针对 .graphql 文件添加解析器和插件:

js 复制代码
module.exports = {
  overrides: [
    {
      files: ['*.graphql'],
      parser: '@graphql-eslint/eslint-plugin',
      plugins: ['@graphql-eslint'],
      rules: {
        // 启用指定规则
        '@graphql-eslint/no-anonymous-operations': 'error',
        '@graphql-eslint/naming-convention': [
          'error',
          {
            OperationDefinition: { style: 'PascalCase' },
          },
        ],
      },
    },
  ],
};

对于 JavaScript/TypeScript 中嵌入的 GraphQL 模板字符串,也可以通过配置 parserOptionsprocessor 实现检查,具体可参考官方文档。

相关资源

复制代码

帮助我们改进文档

发现翻译问题或内容错误?请告诉我们。