如何设置具有不同规则的文件夹和具有不同规则的另一个文件夹

How do I setup a folder with a different rule and another folder with a different rule

我的文件夹结构如下:

-client // Contains the front end and AngularJS code  
-server // Contains backend code  
-models // Contains backend code  

现在,我希望对不在客户端文件夹内的其他文件夹使用 eslint angular only for the client folder whereas I wish to use airbnb base

我有两个 .eslintrc.json 文件 - 一个在客户端文件夹中,一个在 ROOT 文件夹中。

客户端文件夹配置如下:

{
    "extends": "angular"
}

而根文件夹中的那个看起来像:

{
    "extends": "airbnb-base",
    "root": true
}

现在,在根文件夹中,当我 运行 eslint . 时,虽然后端文件夹被正确地检查,但前端似乎没有使用 angular js eslint - 我收到关于 ES6 的错误,我没有使用客户端文件夹。我也没有收到有关不遵循客户端文件夹中 John Papa 风格指南的错误(angular 插件应该这样做)。

但是,如果我进入客户端文件夹并运行其中的 esling 命令,它似乎使用了正确的配置。

我如何配置它以便只有客户端文件夹使用 angular eslint 而其他文件夹使用 airbnb?

客户端和服务器代码的配置

如果您想知道如何对代码的不同部分进行 lint,这是一个建议。

- myproject
--- .eslintrc
--- src
------ client
--------- .eslintrc 
------ server
--------- .eslintrc

myproject/.eslintrc 包含通用规则。例如,

rules:
    brace-style: [2, "1tbs"]
    comma-style: [2, "last"]
    default-case: 2
    func-style: [2, "declaration"] ...

src/client/.eslintrc 包含客户端规则。例如,

env:
    browser: true

globals:
    angular: false

plugins:
  - angular

src/server/.eslintrc 包含服务器端规则。例如

env:
    node: true

通常我会在保存 javascript 文件时检查它。

ESLint 也在全局安装。如 ESLint 配置帮助页面所述,全局安装的 ESLint 实例只能使用全局安装的 ESLint 插件。 本地安装的 ESLint 可以确保本地和全局安装的 ESLint 插件。那就是我还需要全局安装插件。

我建议使用两个配置和两个任务:

eslint -c .eslintrc-client.json client

eslint -c .eslintrc-server.json server models