【问题标题】:Configuring globally installed eslint配置全局安装的 eslint
【发布时间】:2019-07-20 14:28:23
【问题描述】:

我全局安装了 eslint@4.2.0 并想使用一些预定义的配置。当我尝试安装 eslint-config-google 时,它说我没有 eslint>=4.1.0 (我当然有,但全局安装了)。安装eslint-config-airbnb-base 时出现同样的问题 - 最终预定义的配置看不到全局安装的 eslint(甚至eslint --init 也看不到它,因为它在我运行它时在本地安装了另一个 eslint 实例)。然后我决定在我的项目目录中本地安装 eslint 和配置文件 - 就像一个魅力,但我仍然希望将这些东西放在全局范围内,这样我每次制作时都不必关心它我的项目的新目录。 是否可以使 eslint 和预定义配置在全局范围内工作,或者至少具有全局 eslint 和本地配置文件?

【问题讨论】:

  • 老实说,我建议将其全部保留在每个项目的本地。这样您就不必一直担心中断更改和更改配置选项。

标签: javascript npm visual-studio-code eslint


【解决方案1】:

最终预定义的配置看不到全局安装的 eslint

实际上,他们可以。或者更确切地说,全局 ESLint 可以使用全局配置。它只是不知道如何跨越全球和本地之间的障碍。

然后我决定在我的项目目录中本地安装 eslint 和配置文件 - 就像一个魅力一样

不错的选择。当您最终有需要相互冲突的项目时,这将是至关重要的。

但我仍然希望将这些东西放在全局范围内,这样我就不必每次为我的项目创建新目录时都关心它

这就是像Yeoman 这样的项目脚手架工具的用途。这是我使用的generator-seth

每当我开始一个新项目时,我只需输入seth 并回答几个问题,就可以在后台使用光彩夺目的魔法。

是否可以让 eslint 和预定义的配置在全局范围内工作,或者至少有全局 eslint 和本地配置文件?

是的。你可以有一个本地的.eslintrc 文件,全局 ESLint 会尊重它。你可以运行 eslint --init 来设置它(这也会在本地安装 ESLint,但你不需要使用它)。

但更好的方法是使用XO,它建立在 ESLint 之上(并且支持所有 ESLint 规则)。与 ESLint 不同,XO 知道如何自动选择合适的安装来使用。您可以在本地和全局安装它,当检测到一个时,它的全局 CLI 将遵循本地副本。这很重要,因为这意味着每个项目都可以保留自己的 linter 版本,同时仍然允许您在全局范围内运行 XO。因此,如果出现重大变化,您的项目不会一下子搞砸,也不会在需求冲突时中断。无论哪种方式,XO 的配置都保存在本地,因此与 ESLint 不同,您没有重复的本地和全局配置。

【讨论】:

  • 哇,这真的很有帮助,非常感谢!我对 Javascript 很陌生,老实说从来没有听说过这些东西,但我觉得它们将来会对我有很大帮助。再次感谢!
【解决方案2】:

我最近遇到了同样的问题,这是我的解决方案(操作系统:Windows):

首先,我运行 eslint initial 命令来配置我的偏好:

$ eslint --init

?你想如何使用 ESLint? 检查语法、发现问题并强制执行代码样式
?您的项目使用什么类型的模块? CommonJS(需要/导出)
?您的项目使用哪个框架? 这些都不是
?你的代码在哪里运行? 浏览器、节点
?您想如何为您的项目定义一种风格? 使用流行的风格指南
?您想遵循哪种风格指南? Airbnb (https://github.com/airbnb/javascript)
?您希望您的配置文件采用什么格式? JavaScript
检查 eslint-config-airbnb-base@latest 的 peerDependencies
您选择的配置需要以下依赖项:

eslint-config-airbnb-base@latest eslint@^4.19.1 || ^5.3.0 eslint-plugin-import@^2.17.2
?你想现在用 npm 安装它们吗? 没有

其次,我将eslint本地生成的“.eslintrc.js”文件复制到我的用户主目录(C:\Users\username)中,使其成为全局配置文件。

最后,我使用 npm 全局安装所需的包:

npm install -g  eslint@^5.16.0 eslint-config-airbnb-base eslint-plugin-import

*重要*

不要使用npm install -g eslint,因为它会安装最新的 eslint 版本 (如 6.0.1),因此 eslint-config-airbnb-baseeslint-plugin-import 的依赖会出错

如果您想以不同方式配置How to globally set up eslint in vscode,您可以在本文中找到更多信息。

【讨论】:

    猜你喜欢
    • 2018-08-20
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2021-01-30
    • 2020-03-01
    • 2020-01-29
    • 1970-01-01
    相关资源
    最近更新 更多