gpt4 book ai didi

javascript - 共享 eslint 配置找不到节点模块

转载 作者:行者123 更新时间:2023-12-03 16:25:25 26 4
gpt4 key购买 nike

我有多个应用程序,我想共享相同的 eslint 配置:

- project_root/
- app1/
- node_modules/
- eslint.rc
- app2/
- node_modules/
- eslint.rc
- app3/
- node_modules/
- eslint.rc
- eslint.rc

每个应用程序都有相同的配置:
module.exports = {
extends: [
'../.eslintrc',
],
};

在根目录中,我想配置所有内容:
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'prettier',
'prettier/@typescript-eslint',
],
root: true,
env: {
node: true,
jest: true,
},
rules: {},
};

但是现在每个应用程序都会抛出找不到节点模块的错误:

Failed to load parser '@typescript-eslint/parser' declared in '.eslintrc.js » ../.eslintrc': Cannot find module '@typescript-eslint/parser'`.



我在根目录中没有任何 node_modules,我想避免它。

最佳答案

我最终联系了 ESLint discord 帮助,并在那里找到了一些资源来帮助我设置共享配置。
https://github.com/eslint/eslint/issues/3458
当我使用 RushJS 来管理我的 monorepo 时,我正在使用 ESLint 的补丁来允许共享配置 npm 包在本地加载插件。更多信息:https://www.npmjs.com/package/@rushstack/eslint-patch .
简而言之,在你的 monorepo 中创建一个 NPM 包——如果你在本地链接,你不必将它上传到 NPM(RushJS 会这样做,但我认为你也可以使用普通的 NPM 来做到这一点)。
把你的配置放在那个包里 - 信息在这里:https://eslint.org/docs/user-guide/configuring/configuration-files#using-a-shareable-configuration-package
添加从您的共享配置中引用的任何插件作为该包的依赖项。
使用上面提到的 eslint-patch,ESLint 将从这个包中加载插件,而不是你必须在每个项目中安装它们。
这对我有用。我希望它可以帮助其他人...

关于javascript - 共享 eslint 配置找不到节点模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60776649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com