Prettier + ESLint + Turborepo 问题

问题描述 投票:0回答:1

我们正在将 Turborepo 添加到我们现有的项目中,因为我们想再添加一个应用程序。现在我们遇到了 ESLint 和 Prettier 的问题。在我们的管道 (GitHub Actions) 中,检查失败并显示以下消息:

TypeError: prettier.resolveConfig.sync is not a function
  Occurred while linting /home/runner/work/our_turborepo_root/apps/our_app_1/.eslintrc.js:1
  Rule: "prettier/prettier"
      at Program (/home/runner/work/our_turborepo_root/our_app_1/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js:138:40)

以下是一些相关文件:

/package.json

...
"scripts": {
  "lint": "turbo run lint",
  "lint:tsc": "turbo run lint:tsc",
  "eslint:ci": "turbo run eslint:ci --filter='./apps/*' --",
  "format": "prettier --write \"**/*.{ts,tsx,md}\"",
  ...
},
"devDependencies": {
  "prettier": "3.0.3"
},
...

/apps/ourApp1/package.json

...
"scripts": {
  "eslint:ci": "npm run lint:ts",
  "lint": "npm-run-all lint:*",
  "lint:ts": "eslint . --ext .jsx,.js,.ts,.tsx --max-warnings 1",
  "lint:tsc": "tsc --project ./tsconfig.json --noEmit && tsc --project ./tsconfig.server.json --noEmit",
  "prettier": "run-p prettier:*",
  "prettier:json": "prettier --write \"**/*.*(json)\"",
  "prettier:scripts": "prettier --write \"**/*.*(js|jsx|ts|tsx)\"",
  "prettier:styles": "prettier --write \"**/*.*(css|scss)\"",
},
"devDependencies": {
    "eslint-plugin-prettier": "5.0.0",
    "eslint-config-shared": "*"
},
"overrides": {
  "eslint-config-shared": {
    "eslint-plugin-prettier": "5.0.0"
  }
}
...

/apps/ourApp1/.eslintrc.js

module.exports = {
  root: true,
  extends: ['eslint-config-shared'],
};

/packages/eslint-config-shared/index.js

module.exports = {
  extends: [
    'plugin:@next/next/recommended',
  ],
  rules: {
    '@typescript-eslint/explicit-module-boundary-types': 'warn',
    '@typescript-eslint/ban-types': 'off',
    'import/named': 'off',
    'jest/expect-expect': [
      'error',
      {
        assertFunctionNames: [
          'expect',
          'expectValidationError',
          'expectNoValidationError',
        ],
      },
    ],
  },
  overrides: [
    {
      files: ['*.js'],
      rules: {
        'require-await': 'off',
        '@typescript-eslint/no-var-requires': 'off',
      },
    },
    {
      files: ['e2e/**/*.ts'],
      rules: {
        'jest/no-done-callback': 'off',
      },
    },
  ],
};

但是,当我在本地运行

turbo run lint
时,它成功结束。可能是什么问题?

eslint lint prettier turborepo
1个回答
0
投票

尝试:

module.exports = {
  root: true,
  extends: ['shared'],
};
© www.soinside.com 2019 - 2024. All rights reserved.