为什么修复标志在 nx lint 中不起作用?

Why fix flag not works in nx lint?

我在我的 nx 项目 (.eslintrc.json) 中添加 sort-imports 的规则:

"rules": {        
          "sort-imports": ["error", {
              "ignoreCase": false,
              "ignoreDeclarationSort": false,
              "ignoreMemberSort": false,
              "memberSyntaxSortOrder": ["none", "all", "multiple", "single"],
              "allowSeparatedGroups": false
          }],
        "@nrwl/nx/enforce-module-boundaries": [ ...

当我 运行 这个 --fix 标志时,文件中没有任何变化。

我得到的输出是:

➜  nx-app git:(master) ✗ yarn nx run nx-api:lint --fix
yarn run v1.22.10
$ nx run nx-api:lint --fix
> nx run nx-api:lint --fix
Linting "nx-api"...
/Users/.../nx-app/apps/nx-api/src/main.ts
  2:1  error  Imports should be sorted alphabetically  sort-imports
✖ 1 problem (1 error, 0 warnings)
Lint errors found in the listed files.

———————————————————————————————————————————————

>  NX   ERROR  Running target "nx-api:lint" failed

文件内容为:

import { writeFileSync } from 'fs';
import path from 'path';

console.log({ path });

console.log({ writeFileSync });
console.log('Hello World!');

那么为什么 eslint 不修复文件?它在文档中说:

The --fix option on the command line automatically fixes some problems reported by this rule

要使用此规则,您必须安装插件。

该插件是“eslint-plugin-sort-imports”,但已不存在。

您可以使用:eslint-plugin-sort-imports-es6-autofix

npm i --save-dev eslint-plugin-sort-imports-es6-autofix

并在.eslintrc.json:

  "plugins": ["@nrwl/nx", "sort-imports-es6-autofix"],
  "rules": {
        "sort-imports-es6-autofix/sort-imports-es6": [2, {
          "ignoreCase": false,
          "ignoreMemberSort": false,
          "memberSyntaxSortOrder": ["none", "all", "multiple", "single"]
        }],
        "@nrwl/nx/enforce-module-boundaries": [
         ....

现在 运行 和 --fix 应该可以了。