# @blgc/config 中文文档

规范地址：https://npmcn.com/package/%40blgc/config/

版本：0\.1\.2
npm 元数据更新时间：2026-08-08T08:57:22.734Z
中文译文更新时间：2026-11-08T06:45:56.027Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40blgc/config
原文对照：https://npmcn.com/package/%40blgc/config/?lang=original
项目主页：https://builder.group/?utm_source=package-json
源码仓库：https://github.com/builder-group/community

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：29 kB，18 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：13 个
- peer 依赖：eslint ^10\.3\.0，prettier ^3\.0\.0，typescript ^6\.0\.0，vitest ^4\.1\.7
- 首次发布：2024-08-02T15:21:07.687Z
- 最新版本发布：2026-08-08T08:57:22.581Z
- 近 30 天下载量：7307（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：31（近 12 个月 6 个）

## 中文简介

用于构建器组项目的共享类型脚本、 ESLint、 Pretier 和 Vitest 配置

## 安装

```sh
npm install @blgc/config
```

也可以使用：`pnpm add @blgc/config`、`yarn add @blgc/config`、`bun add @blgc/config`

## README

# ![@blgc/config banner](https://raw.githubusercontent.com/builder-group/community/develop/packages/config/.github/banner.svg)

 [![GitHub License](https://img.shields.io/github/license/builder-group/community.svg?label=license&style=flat&colorA=293140&colorB=FDE200)](https://github.com/builder-group/community/blob/develop/LICENSE)[![NPM total downloads](https://img.shields.io/npm/dt/@blgc/config.svg?label=downloads&style=flat&colorA=293140&colorB=FDE200) ](https://www.npmjs.com/package/@blgc/config)[![Join Discord](https://img.shields.io/discord/795291052897992724.svg?label=&logo=discord&logoColor=000000&color=293140&labelColor=FDE200)](https://discord.gg/w4xE3bSjhQ)

`@blgc/config` 是 Builder Group 用于 TypeScript 项目的共享配置包。 它在一个版本的依赖性中保持了格式化,linting,类型检查,和节点测试默认,因此包可以共享严格的工具行为而无需复制配置文件.

-   格式代码, Markdown, 导入, Tailwind 类, 以及包含一个 Pretier 配置的软件包
-   为库、React、Next.js和TanStack项目选择平面的 ESLint 预设
-   扩展捆绑库、 DOM 库、 节点 20、 React、 Next.js 和 TanStack 的 TypeScript 预设
-   重新使用带有 TypeScript 路径分辨率和覆盖记录员的 Vitest 节点预设

```js
// eslint.config.js
module.exports = [...require('@blgc/config/eslint/library')];
```

```jsonc
// tsconfig.json
{
  "extends": "@blgc/config/typescript/library",
  "include": ["src"]
}
```

```json
{
  "prettier": "@blgc/config/prettier"
}
```

从 `0.0.x`看到了吗 [移民.md](https://npmcn.com/package/%40blgc/config/MIGRATION.md)。 。 。 .

## 安装

安装配置包 :

```sh
npm install -D @blgc/config
```

安装您项目使用的入口工具包 :

```sh
# ESLint presets
npm install -D eslint typescript

# Prettier config
npm install -D prettier

# TypeScript configs
npm install -D typescript

# Vitest config
npm install -D vitest
```

共享插件依赖性解析自 `@blgc/config`,因此项目只需要安装它们直接运行的工具包.

## 使用量

使用匹配工具或项目类型的切入点 :

| 入境点 | 用于 |
| --- | --- |
| `@blgc/config/prettier` | 共享格式和排序规则 |
| `@blgc/config/eslint/base` | 自定义预设共享的 ESLint 基础 |
| `@blgc/config/eslint/library` | 类型脚本库 |
| `@blgc/config/eslint/react` | 反应软件包和 Vite 应用程序 |
| `@blgc/config/eslint/next` | Next.js 应用程序 |
| `@blgc/config/eslint/tanstack` | TanStack 路由器或 TanStack 启动应用程序 |
| `@blgc/config/typescript/base` | 共享严格的类型脚本默认值 |
| `@blgc/config/typescript/library` | 没有 DOM 全局化的捆绑库 |
| `@blgc/config/typescript/library-dom` | 使用 DOM 全局化的捆绑库 |
| `@blgc/config/typescript/node20` | 节点 20 套件和工具 |
| `@blgc/config/typescript/react` | 反应软件包和 Vite 应用程序 |
| `@blgc/config/typescript/next` | Next.js 应用程序 |
| `@blgc/config/typescript/tanstack` | TanStack 应用程序 |
| `@blgc/config/vitest/node` | 节点测试环境 |

## 高级

引用共享配置来自 `package.json`数字 :

```json
{
  "prettier": "@blgc/config/prettier"
}
```

该配置包括:

-   LF行结尾,代码文件标签,两相距马克下缩进,单引号,分号,以及 `printWidth: 100`
-   导入排序通过 `@ianvs/prettier-plugin-sort-imports`
-   软件包.json 订购通过 `prettier-plugin-packagejson`
-   尾风类排序通过 `prettier-plugin-tailwindcss`

Pretier 插件从 `@blgc/config`,因此消耗性软件包不需要直接安装这些插件.

需要 Tailwind v4 样式表路径或 Tailwind v3 配置路径的项目可以在本地扩展配置 :

```js
module.exports = {
  ...require('@blgc/config/prettier'),
  tailwindStylesheet: './src/styles.css'
};
```

## ESLint 语录

使用平面配置从 `eslint.config.js`数字 :

```js
// CommonJS
module.exports = [
  ...require('@blgc/config/eslint/library'),
  {
    rules: {
      // local overrides
    }
  }
];
```

```js
// ESM
import libraryConfig from '@blgc/config/eslint/library';

export default [
  ...libraryConfig,
  {
    rules: {
      // local overrides
    }
  }
];
```

按项目类型选择预设 :

| 预设 | 添加数 |
| --- | --- |
| `@blgc/config/eslint/base` | JavaScript, TypeScript, Turbo, 警告模式, Pretier, 忽略 |
| `@blgc/config/eslint/library` | TypeScript 软件包代码的基础配置 |
| `@blgc/config/eslint/react` | 浏览器 Globals, JSX 解析, ESLint React, React Hooks |
| `@blgc/config/eslint/next` | 重现配置, Next.js Core Web Vitals, Next.js 构建忽略 |
| `@blgc/config/eslint/tanstack` | 重现配置, TanStack 构建忽略, Vite env- var 允许列表 |

基础预设用途 `@eslint/js` 建议的规则, `typescript-eslint` 严格规则, Turbo env-var 警告, 生成/ 构建文物忽略, 配置文件的节点全局, 以及 Pretier 兼容性 。 共享规则结果报告为警告 `eslint-plugin-only-warn`; 使用 `eslint --max-warnings=0` 当项目准备执行干净结果时,在CI中.

## 类型脚本

扩展最近的类型脚本配置 :

```json
{
  "extends": "@blgc/config/typescript/library",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src",
    "declarationDir": "./dist/types"
  },
  "include": ["src"]
}
```

可用的配置 :

| 配置 | 用于 |
| --- | --- |
| `@blgc/config/typescript/base` | 共享严格的基础设置 |
| `@blgc/config/typescript/library` | 没有 DOM API 的捆绑库 |
| `@blgc/config/typescript/library-dom` | 使用 DOM 全球的图书馆 |
| `@blgc/config/typescript/node20` | 节点 20 套件和工具 |
| `@blgc/config/typescript/react` | 反应软件包和 Vite 应用程序 |
| `@blgc/config/typescript/next` | Next.js 应用程序 |
| `@blgc/config/typescript/tanstack` | TanStack 应用程序 |

默认知道:基础配置使用ES2022, `module: preserve`,捆绑模块分辨率,强制模块检测,声明输出,声明地图, `skipLibCheck`,并严格类型检查。 TypeScript未使用的检查停止,因为ESLint拥有未使用的诊断.

使用 `@blgc/config/typescript/library` 当一个包通过捆绑器释放出JavaScript时,并使用TypeScript来发布声明. 使用 `@blgc/config/typescript/node20` 用于发送 JavaScript 的节点软件包或工具 `tsc`。 。 。 .

## 维特

想要默认测试设置时合并共享的 Vitest 节点配置 :

```js
import { nodeConfig } from '@blgc/config/vitest/node';
import { defineConfig, mergeConfig } from 'vitest/config';

export default mergeConfig(
  nodeConfig,
  defineConfig({
    test: {
      // project-specific test options
    }
  })
);
```

节点配置设置了节点测试环境,实现了TypeScript路径解析,并使用文本,JSON,和HTML覆盖记录员.

## 财务问题

### 我需要安装每个对等工具吗?

没有。 安装您运行的工具 。 例如,只扩展TypeScript配置的软件包不需要安装ESLint,Prettier,或Vitest.

### 我能超越规则吗?

对 在共享配置后添加另一个配置对象 `eslint.config.js`,添加 `compilerOptions` 内 `tsconfig.json`,或将特定项目选项传递给 `mergeConfig` 为了维特.

### 为什么ESLint报告警告而不是失败?

共享的 ESLint 配置首先是一个准则. 规则的发现报告为警告,这样人类和特工们就可以在不阻碍当地工作的情况下看到什么改进.

使用 `eslint --max-warnings=0` 在 CI 或软件包脚本中,当项目准备执行干净的插件结果时.

### 为什么共享配置文件是共同JS?

CommonJS保留了从CommonJS和无害环境管理项目配置中可以使用的配置包. 无害环境管理项目可以导入普通JS预设,但普通JS项目不能同步 `require()` 无害环境管理预设.

### 为什么"反应ESLint"配置使用"jiti"??

`@eslint-react/eslint-plugin` 仅限无害环境管理. `jiti` 让 CommunityJS ESLint 预设加载插件而不强制每个消费者迁移其 `eslint.config.js` 对无害环境管理的考虑.

### 为什么库 TypeScript 配置使用模块保存?

大多数"构建者"组包让"Rollup"或"esbuilt"放出JavaScript并让"TypeScript"放出声明. `module: preserve` 让 TypeScript 的导入分辨率更接近这些捆绑者所看到的. 以 JavaScript 发布节点包 `tsc` 应当使用节点预设或覆盖 `compilerOptions.module`。 。 。 .

### 为什么不启用每个严格的 TypeScript 旗?

像旗帜 `exactOptionalPropertyTypes`, (中文(简体) ), `verbatimModuleSyntax`,以及 `erasableSyntaxOnly` 它们是有用的迁移目标,但它们要求进行源一级清理,或不允许当前源模式。 一旦一个项目为更严格的合同做好准备,就在当地启用.

### 为什么把这些配置放在包里?

一个软件包保持默认版本,可审查,可再使用. 项目可以更新一个依赖,而不是手工复制配置变化.

## 贷项

-   [`turbo-basic`](https://github.com/vercel/turbo/tree/main/examples/basic): Vercel启动模板中的基础配置模式
-   [`tsconfig/bases`](https://github.com/tsconfig/bases): 类型脚本配置参考

## 常见问题

### @blgc/config 是什么？

用于构建器组项目的共享类型脚本、 ESLint、 Pretier 和 Vitest 配置

### 如何安装 @blgc/config？

在项目目录运行 npm install @blgc/config，或使用 pnpm add / yarn add / bun add。

### @blgc/config 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/blgc\_\_config 是否存在。

### @blgc/config 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @blgc/config 可以商用吗？

@blgc/config 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @blgc/config 的下载量有多少？

根据 npm 官方下载统计，@blgc/config 在 2026/10/09 – 2026/11/07 这 30 天内被下载 7,307 次，日均约 244 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @blgc/config 还在维护吗？

最新版本 0\.1\.2 发布于 2026/08/08（3 个月前）；至今共发布 31 个版本，其中过去 12 个月发布了 6 个；首次发布于 2024/08/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

