# @alessiofrittoli/package-configs 中文文档

规范地址：https://npmcn.com/package/%40alessiofrittoli/package-configs/

版本：1\.12\.0
npm 元数据更新时间：2026-10-29T23:35:17.239Z
中文译文更新时间：2026-11-06T09:12:48.948Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40alessiofrittoli/package-configs
原文对照：https://npmcn.com/package/%40alessiofrittoli/package-configs/?lang=original
项目主页：https://github.com/alessiofrittoli/package-configs#readme
源码仓库：https://github.com/alessiofrittoli/package-configs

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

- 包体积（解压后）：57 kB，61 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.15\.0
- 运行依赖：1 个
- peer 依赖：vite ^8\.3\.0，eslint ^10\.11\.0，oxlint ^1\.85\.0，tsdown ^0\.23\.0，vitest ^5\.0\.1，globals ^17\.12\.0，prettier ^3\.9\.9，@eslint/js ^10\.0\.1，typescript ^6\.0\.3，@eslint/compat ^2\.1\.1，oxlint-tsgolint ^7\.0\.2004，@eslint/eslintrc ^3\.3\.7，typescript-eslint ^8\.70\.1，eslint-config-next ^16\.4\.2，eslint-plugin-react ^7\.37\.5，@alessiofrittoli/tsconfig ^1\.0\.0，eslint-plugin-react-hooks ^7\.1\.1，prettier-plugin-sort-imports ^1\.8\.11，eslint-plugin-react-server-components ^1\.2\.0
- 首次发布：2026-09-27T23:20:26.135Z
- 最新版本发布：2026-10-29T23:35:16.977Z
- 近 30 天下载量：3642（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：26（近 12 个月 26 个）

## 中文简介

为您的软件包提供基础配置的工具库 .

## 安装

```sh
npm install @alessiofrittoli/package-configs
```

也可以使用：`pnpm add @alessiofrittoli/package-configs`、`yarn add @alessiofrittoli/package-configs`、`bun add @alessiofrittoli/package-configs`

## README

# 软件包配置

## 轻松地处理软件包配置

 [![Latest version](https://img.shields.io/npm/v/@alessiofrittoli/package-configs)](https://npmjs.org/package/@alessiofrittoli/package-configs)[![Test coverage](https://coveralls.io/repos/github/alessiofrittoli/package-configs/badge.svg) ](https://coveralls.io/github/alessiofrittoli/package-configs)[![Socket Security score](https://socket.dev/api/badge/npm/package/@alessiofrittoli/package-configs) ](https://socket.dev/npm/package/@alessiofrittoli/package-configs/overview)[![npm downloads](https://img.shields.io/npm/dm/@alessiofrittoli/package-configs.svg) ](https://npmjs.org/package/@alessiofrittoli/package-configs)[![Dependencies](https://badgen.net/bundlephobia/dependency-count/@alessiofrittoli/package-configs) ](https://bundlephobia.com/package/@alessiofrittoli/package-configs)[![Dependencies status](https://img.shields.io/librariesio/release/npm/@alessiofrittoli/package-configs)](https://libraries.io/npm/%40alessiofrittoli%2Fpackage-configs)

 [![minified](https://badgen.net/bundlephobia/min/@alessiofrittoli/package-configs)](https://bundlephobia.com/package/@alessiofrittoli/package-configs)[![minizipped](https://badgen.net/bundlephobia/minzip/@alessiofrittoli/package-configs) ](https://bundlephobia.com/package/@alessiofrittoli/package-configs)[![Tree shakable](https://badgen.net/bundlephobia/tree-shaking/@alessiofrittoli/package-configs)](https://bundlephobia.com/package/@alessiofrittoli/package-configs)

[![Fund this package](https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2)](https://github.com/sponsors/alessiofrittoli)

### 目录

-   [发展](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-development)
    -   [地方发展](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-local-development)
    -   [生产建设](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-production-build)
    -   [单位测试](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-unit-tests)
        -   [进行覆盖测试](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-run-tests-with-coverage)
    -   [捐款](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-contributing)
    -   [警卫](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-security)
-   [API 参考](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-api-reference)
    -   [安装可选依赖性](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-installing-optional-dependencies)
    -   [类型脚本配置](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-typescript-configurations)
        -   [类型脚本配置文件](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-typescript-configurations-files)
        -   [类型脚本工具函数](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-typescript-utility-functions)
    -   [ESlint 配置](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-eslint-configurations)
    -   [氧化剂配置](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-oxlint-configurations)
    -   [高级配置](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-prettier-configurations)
    -   [下调配置](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-tsdown-configurations)
    -   [虚拟配置](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-vite-configurations)
    -   [马克下林特配置](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-markdownlint-configurations)
-   [贷项](https://npmcn.com/package/%40alessiofrittoli/package-configs/#readme-made-with-)

* * *

### 发展

运行以下开始开发

```shell
nvm use

pnpm i
```

#### 地方发展

运行以下

```shell
pnpm dev
```

这将生成未忽略的输出代码, 源图并启用源文件监视器 .

* * *

#### 生产建设

运行以下来创建本地生产建筑

```shell
pnpm build
```

这将生成没有源代码的已修改输出代码 .

* * *

#### 单位测试

通过运行下列程序运行所有定义的测试套件 :

```shell
# Run tests and watch file changes.
pnpm test:watch

# Run tests in a CI environment.
pnpm test:ci
```

* * *

##### 进行覆盖测试

然后开始使用 HTTP 服务器服务覆盖文件 `./coverage` 文件夹.

您可以在您第一次运行此命令时看到空白页 。 只需刷新浏览器即可看到更新 .

```shell
pnpm test:coverage:serve
```

* * *

#### 捐款

献礼真受欢迎!

请参看 [贡献文件](https://npmcn.com/package/%40alessiofrittoli/package-configs/CONTRIBUTING.md) 了解如何开始为该项目作出贡献的更多信息.

帮助更新此项目 [GitHub 赞助商](https://github.com/sponsors/alessiofrittoli)。 。 。 .

[![GitHub Sponsor](https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2)](https://github.com/sponsors/alessiofrittoli)

* * *

#### 警卫

如果你认为你发现了安全漏洞 我们鼓励你 **_负责地披露此事,不公开问题_**我们将调查所有合法的报告。 电子邮件 `security@alessiofrittoli.it` 披露任何安全弱点.

* * *

### API 参考

#### 安装可选依赖性

此软件包提供了一个脚本, 它将通过基于当前工程工具的依赖性安装来引导您 .

一旦安装 `@alessiofrittoli/package-configs` 您可以运行如下:

```bash
node node_modules/@alessiofrittoli/package-configs/scripts/install-dependencies.cjs
```

* * *

#### 类型脚本配置

此工程输出不同的配置 JSON 文件以及您在项目中可能需要的一些工具功能 .

##### 类型脚本配置文件

基础配置文件

此文件旨在 `base` 进程并主要包含您的 IDE 所需的所有配置.

```json
{
  "extends": "@alessiofrittoli/package-configs/tsconfig/base.json",
  "compilerOptions": {
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}
```

* * *

反应捆绑器配置文件

```json
{
  "extends": "@alessiofrittoli/package-configs/tsconfig/react-bundler.json"
}
```

* * *

下个. JS 捆绑器配置文件

```json
{
  "extends": "@alessiofrittoli/package-configs/tsconfig/nextjs-bundler.json"
}
```

* * *

##### 类型脚本工具函数

###### `parseTsConfig()`

> \[尖叫声\]
> 
> @ 已过期
> 
> 此函数已移动到 [`@alessiofrittoli/tsconfig`](https://npmjs.org/package/@alessiofrittoli/tsconfig) 软件包.

解析类型脚本配置文件 .

参数

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `options` | `ParseTsConfigOptions` | `{}` | (备选) 定义所需参数的对象. |
| `options.filepath` | `string` | `"./tsconfig.json"` | (可选) TypeScript 配置文件路径. |

* * *

掷出

丢出一个 `Error` 如果解决了 `filepath` 不存在.

* * *

回返

类型 : `ParsedCommandLine`

解析后的类型脚本配置文件 .

* * *

实例

```ts
import { parseTsConfig } from '@alessiofrittoli/package-configs/tsconfig'

const parsedTsConfig = parseTsConfig({ filepath: './tsconfig.build.json' })
```

* * *

###### `getTSConfigCompilerTarget()`

> \[尖叫声\]
> 
> @ 已过期
> 
> 此函数已移动到 [`@alessiofrittoli/tsconfig`](https://npmjs.org/package/@alessiofrittoli/tsconfig) 软件包.

从已解析的配置文件中获取 TypeScript 编译器目标 .

参数

| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `options` | `ParseTsConfigOptions` | `{}` | (备选) 定义所需参数的对象. |
| `options.filepath` | `string` | `"./tsconfig.json"` | (可选) TypeScript 配置文件路径. |
| `options.parsedTsConfig` | `ParsedCommandLine` | \- 说吧 | (备选) 已经解析的 TS 配置 . |

* * *

回返

类型 : `string | undefined`

已解决的 TypeScript 编译器目标( 如果有的话), `undefined` 否则.

* * *

实例

```ts
import { getTSConfigCompilerTarget } from '@alessiofrittoli/package-configs/tsconfig'

const compilerTarget = getTSConfigCompilerTarget({
  filepath: './tsconfig.build.json',
})
```

* * *

#### ESlint 配置

##### `eslintConfig()`

获取 `ESLint` 基础配置.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `configs` | `LinterConfigArray` | (可选)自定义配置. |

* * *

回返

类型 : `LinterConfigArray`

ESLint配置阵列.

* * *

实例

###### 使用标准配置文件

```ts
// my-project/eslint.config.ts
import { eslintConfig } from "@alessiofrittoli/package-configs/eslint";

export default eslintConfig( {...}, {...} );
```

* * *

###### 使用 React.js 配置文件

```ts
// my-project/eslint.config.ts
import { reactProfile } from '@alessiofrittoli/package-configs/eslint/profiles/react'
import { eslintConfig } from '@alessiofrittoli/package-configs/eslint'

export default eslintConfig(...reactProfile)
```

* * *

###### 使用 Next.JS 配置文件

```ts
// my-project/eslint.config.ts
import { nextjsProfile } from '@alessiofrittoli/package-configs/eslint/profiles/nextjs'
import { eslintConfig } from '@alessiofrittoli/package-configs/eslint'

export default eslintConfig(...nextjsProfile)
```

* * *

#### 氧化剂配置

##### `oxlintConfig()`

获取 `Oxlint` 基础配置.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `configs` | `T & OxlintConfig` | (可选)自定义配置. |

* * *

回返

类型 : `OxlintConfig`

奥克林特配置.

* * *

实例

```ts
// my-project/oxlint.config.ts
import { oxlintConfig } from "@alessiofrittoli/package-configs/oxlint";

export default oxlintConfig( {...} );
```

* * *

#### 高级配置

##### `prettierConfig()`

获取 `Prettier` 基础配置.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `configs` | `PrettierConfig` | (可选)自定义配置. |

* * *

回返

类型 : `PrettierConfig`

Pretier配置图.

* * *

实例

```ts
// my-project/prettier.config.ts
import { prettierConfig } from "@alessiofrittoli/package-configs/prettier";

export default prettierConfig( {...} );
```

* * *

#### 下调配置

##### `tsdownConfig()`

获取 `tsdown` 基础配置.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `options` | `UserConfig|UserConfigFn` | (备选) 定义自定义选项的对象或返回自定义选项对象的可调用函数. |

* * *

回返

类型 : `UserConfigFn`

可调用函数 `tsdown` 进程.

* * *

默认配置

| 财产 | 数值 |
| --- | --- |
| `entry` | `["src/**\/index.ts"]` |
| `format` | `["cjs", "esm"]` |
| `dts` | `true` |
| `shims` | `true` |
| `clean` | `true` |
| `treeshake` | `true` |
| `minify` | `!watch` |
| `sourcemap` | `!!watch` |
| `target` | 解析 tsconfig 目标 |
| `deps` | `{ ... }` |

* * *

实例

```ts
// my-project/tsdown.config.ts

import { tsdownConfig } from '@alessiofrittoli/package-configs/tsdown'
import { join, resolve } from 'path'

const tsConfigFile = 'tsconfig.build.json'

export default tsdownConfig(({ outDir = 'example-custom-directory' }) => ({
  tsconfig: resolve(process.cwd(), tsConfigFile),
  outDir,
  copy: [
    {
      from: 'src/assets',
      to: join(outDir, 'assets'),
    },
  ],
}))
```

* * *

#### 虚拟配置

##### `viteConfig()`

获取 `vite` 基础配置.

参数

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `options` | `UserConfig` | (备选) 一个定义自定义 Vite 配置选项的对象 . |

* * *

回返

类型 : `UserConfigFnObject`

具有基础和自定义 Vite 配置选项的对象.

* * *

默认配置

| 财产 | 数值 |
| --- | --- |
| `resolve.tsconfigPaths` | `true` |
| `test.reporters` | `["tree"]|[]` 基于 `VITEST_VSCODE` 环境变量. |
| `test.coverage.exclude` | `["**/*.mock.ts", "**/__tests__/**/*.mock.ts"]` |

* * *

实例

```ts
// my-project/vite.config.ts

/// <reference types="vitest/config" />
import { viteConfig } from "@alessiofrittoli/package-configs/vite";

export default viteConfig( {...} )
```

* * *

#### 马克下林特配置

为了帮助您在写下标记文档时拥有更好的DX,这个库为您提供了一套基本林入规则.

简单创建 `.markdownlint.json` 文件位于您的工程根并像这样配置 :

```json
{
  "extends": "@alessiofrittoli/package-configs/markdownlint/base.json"
}
```

> \[尖叫声\]
> 
> 进口 `base.json` 用途 `https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.41.0/schema/markdownlint-config-schema.json` 在用户/项目 JSON 设置文件中添加以下设置:
> 
> ```json
> {
>   "json.schemaDownload.trustedDomains": {
>     "https://raw.githubusercontent.com/DavidAnson/markdownlint/": true
>   }
> }
> ```

### 由 所制

<table><tbody><tr><td><img alt="avatar" src="https://avatars.githubusercontent.com/u/35973186" loading="lazy" decoding="async" referrerpolicy="no-referrer"></td><td><table><tbody><tr><td><a href="https://github.com/alessiofrittoli" rel="nofollow noopener noreferrer">阿莱西奥·弗里托利</a></td></tr><tr><td><small><a href="https://alessiofrittoli.it/" rel="nofollow noopener noreferrer">https://alessiofrittoli.it (英语)</a> | <a href="mailto:info@alessiofrittoli.it" rel="nofollow noopener noreferrer">(原始内容存档于2018-10-21) (英语). info.it</a></small></td></tr></tbody></table></td></tr></tbody></table>

## 常见问题

### @alessiofrittoli/package-configs 是什么？

为您的软件包提供基础配置的工具库 \.

### 如何安装 @alessiofrittoli/package-configs？

在项目目录运行 npm install @alessiofrittoli/package-configs，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：typescript（^6\.0\.3）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @alessiofrittoli/package-configs 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @alessiofrittoli/package-configs 支持 ESM 还是 CommonJS？

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

### @alessiofrittoli/package-configs 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24\.15\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @alessiofrittoli/package-configs 可以商用吗？

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

### @alessiofrittoli/package-configs 的下载量有多少？

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

### @alessiofrittoli/package-configs 还在维护吗？

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

