# @siemens/prettier-config 中文文档

规范地址：https://npmcn.com/package/%40siemens/prettier-config/

版本：5\.0\.0
npm 元数据更新时间：2026-11-02T10:25:41.278Z
中文译文更新时间：2026-11-02T12:04:42.671Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：11.1 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：0 个
- peer 依赖：prettier ^3\.0\.0
- 首次发布：2024-12-23T11:40:43.286Z
- 最新版本发布：2026-08-04T20:03:01.344Z
- 已发布版本数：29（近 12 个月 11 个）

## 中文简介

pretier的配置。

## 安装

```sh
npm install @siemens/prettier-config
```

也可以使用：`pnpm add @siemens/prettier-config`、`yarn add @siemens/prettier-config`、`bun add @siemens/prettier-config`

## README

# 西门子线头

西门子Lint可以帮助您改进并保持项目的代码质量 高水平。它提供了预置和插件的各种使用 西门子。

我们欢迎更多的检测规则和配置的加入 此仓库适用于各种其他编程语言和框架。

**预置可用于以下语言：**

-   [typescript-eslint](https://typescript-eslint.io/)
-   [角ESLint](https://github.com/angular-eslint/angular-eslint)
-   [stylelint](https://stylelint.io/)
-   [commitlint](https://commitlint.js.org/)
-   [更漂亮](https://prettier.io/)

**插件:**

-   [eslint-plugin-defaultvalue](https://npmcn.com/package/%40siemens/prettier-config/eslint-plugin-defaultvalue/README.md) 用于 [typescript-eslint](https://typescript-eslint.io/) 自动 注释 `@defaultValue` TSDoc标签

## 安装

安装 `@siemens/*-config*` 以及它们在你的项目中的对等依赖关系（你需要哪个）：

```bash
npm install @siemens/stylelint-config-scss --save-dev --save-exact
npm install @siemens/commitlint-config --save-dev --save-exact
npm install @siemens/prettier-config --save-dev --save-exact
npm install @siemens/eslint-config-typescript --save-dev --save-exact
npm install @siemens/eslint-config-angular --save-dev --save-exact
```

**_注意_** _您应该指定上述和的软件包的确切版本 他们的同伴依赖关系 `eslint` 它的插件， `stylelint`， `stylelint-config-sass-guidelines` 和 `@commitlint/config-conventional`． 规则 将在补丁版本中更改。_

### ESLint

我们的ESLint配置不包含任何格式化规则。 请使用格式化程序 [更漂亮](https://prettier.io/) 或者为ESLint添加一个格式化规则集，比如 [ESLint风格](https://eslint.style/).

#### 打印稿

在根目录中包含ESLint预设 `eslint.config.mjs`：

```js
import path from 'path';
import { fileURLToPath } from 'url';
import { defineConfig } from 'eslint/config';
import typescriptConfig from '@siemens/eslint-config-typescript';

// mimic CommonJS variables
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export default defineConfig({
  extends: [...typescriptConfig],
  files: ['**/*.ts'],
  languageOptions: {
    parserOptions: {
      project: ['tsconfig.json', 'tsconfig.app.json', 'tsconfig.spec.json', 'e2e/tsconfig.json'],
      tsconfigRootDir: __dirname
    }
  }
});
```

> **注意：** 要使用不那么严格的规则，请使用 `base` 规则，通过导入 `{ configBase }` 代替。

#### 角

在根目录中包含ESLint预设 `eslint.config.mjs`：

```js
import path from 'path';
import { fileURLToPath } from 'url';
import { defineConfig } from 'eslint/config';
import angularTypescriptConfig from '@siemens/eslint-config-angular';
import angularTemplateConfig from '@siemens/eslint-config-angular/template';

// mimic CommonJS variables
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

const tsConfig = defineConfig({
  extends: [...angularTypescriptConfig],
  files: ['**/*.ts'],
  languageOptions: {
    parserOptions: {
      project: ['tsconfig.json', 'tsconfig.app.json', 'tsconfig.spec.json', 'e2e/tsconfig.json'],
      tsconfigRootDir: __dirname
    }
  },
  rules: {
    '@angular-eslint/directive-selector': [
      'error',
      {
        type: 'attribute',
        prefix: 'app',
        style: 'camelCase'
      }
    ],
    '@angular-eslint/component-selector': [
      'error',
      {
        type: 'element',
        prefix: 'app',
        style: 'kebab-case'
      }
    ]
  }
});

const templateConfig = defineConfig({
  extends: [...angularTemplateConfig],
  files: ['**/*.html']
});

export default defineConfig(...tsConfig, ...templateConfig);
```

图书馆和其他的东西 `projects` 目录, 创建一个额外的 `eslint.config.mjs` 对于每个看起来像这样的项目：

```js
import { defineConfig } from 'eslint/config';
import { tsConfig, templateConfig } from '../../eslint.config.mjs';

export default defineConfig(
  {
    extends: [...tsConfig],
    files: ['**/*.ts'],
    languageOptions: {
      parserOptions: {
        project: ['projects/element-ng/tsconfig.lib.json', 'projects/element-ng/tsconfig.spec.json']
      }
    },
    rules: {
      '@angular-eslint/component-selector': [
        'error',
        {
          type: 'element',
          prefix: 'si',
          style: 'kebab-case'
        }
      ],
      '@angular-eslint/directive-selector': [
        'error',
        {
          type: 'attribute',
          prefix: 'si',
          style: 'camelCase'
        }
      ]
    }
  },
  ...templateConfig
);
```

这个 `@angular-eslint/builder` 会不会自动接库 配置位置，手动提供 `angular.json`：

```diff
@@ -122,15 +125,11 @@
          }
        },
        "lint": {
          "builder": "@angular-eslint/builder:lint",
          "options": {
            "lintFilePatterns": [
              "src/**/*.ts",
              "src/**/*.html"
            ],
+           "eslintConfig": "path/to/project/eslint.config.mjs"
          }
        },
```

#### 从TSLint迁移

也在 `angular.json`，确保替换TSLint相关的条目，如 这样的:

```diff
@@ -122,15 +125,11 @@
          }
        },
        "lint": {
-         "builder": "@angular-devkit/build-angular:tslint",
+         "builder": "@angular-eslint/builder:lint",
          "options": {
-           "tsConfig": [
-             "tsconfig.app.json",
-             "tsconfig.spec.json",
-             "e2e/tsconfig.json"
-           ],
-           "exclude": [
-             "**/node_modules/**"
+           "lintFilePatterns": [
+             "src/**/*.ts",
+             "src/**/*.html"
            ]
          }
        },
```

> **注意：** 使用较不严格的规则，这些规则来源于上游 Angular推荐和更多面向应用的推荐，请使用 `base` 规则，通过导入 `{ configBase }` 代替。

### Stylelint

控件中包含样式预设 `.stylelintrc.yml`：

```yml
extends:
  - '@siemens/stylelint-config-scss/stylelintrc.yml'
```

### Commitlint

包含提交预设 `package.json`：

```json
  "commitlint": {
    "extends": [
      "@siemens/commitlint-config/.commitlintrc.js"
    ]
  },

// Optional: Pre-commit hook using husky: https://github.com/typicode/husky
  "husky": {
      "hooks": {
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
      }
    },
```

### 更漂亮

包含共享的Prettier配置 `package.json`：

```json
"prettier": "@siemens/prettier-config",
```

### ESLint插件

ESLint插件的用法有文档说明 [在这里](https://npmcn.com/package/%40siemens/prettier-config/eslint-plugin-defaultvalue/README.md).

## 使用

预设现在将被自动使用 `eslint` 和 `ng lint`． 请 参考 [角ESLint](https://github.com/angular-eslint/angular-eslint) 和 [ng线头](https://angular.io/cli/lint) 有关更多详细信息的文档。

将commitlint、ESlint和stylesint脚本添加到你的 `package.json`：

```json
"scripts": {
  "lint": "ng lint",
  "lint:sass": "stylelint **.scss",
  "lint:commit": "commitlint --from=origin/main",
  "lint:all": "npm run lint:commit && npm run lint && npm run lint:sass"
}
```

要自动修复ESLint问题，使用：

```json
"scripts": {
  "lint:fix": "ng lint --fix"
}
```

要自动修复字体问题，请使用：

```json
"scripts": {
  "lint:sass:fix": "stylelint --fix **.scss"
}
```

确保调用CI构建链中的linter `.gitlab-ci.yml`：

```yml
lint:
  stage: tests
  script:
    - npm install
    - npm run lint:all
```

> **注意：** 要在Gitlab CI中使提交工作，需要设置 `Git shallow clone` 设置为 `0` （见project） `settings` > `CI / CD`）。 这样，GitLab CI每次都会获取所有分支和标签。

## 贡献

改进总是受欢迎的！请随意记录错误， 编写建议或通过创建拉取请求贡献代码。 所有细节都在我们的投稿指南中列出。

看到 [CONTRIBUTING.md](https://npmcn.com/package/%40siemens/prettier-config/CONTRIBUTING.md).

## 许可证

版权所有(c)西门子2018 - 2026。

看到 [LICENSE.md](https://npmcn.com/package/%40siemens/prettier-config/LICENSE.md).

## 常见问题

### @siemens/prettier-config 是什么？

pretier的配置。

### 如何安装 @siemens/prettier-config？

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

### @siemens/prettier-config 支持 TypeScript 吗？

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

### @siemens/prettier-config 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @siemens/prettier-config 可以商用吗？

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

### @siemens/prettier-config 还在维护吗？

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

