Подтвердить что ты не робот

Как я могу написать правило ESLint для "stylebreak-style", изменяясь в зависимости от Windows или Unix?

Как мы все знаем, строки-строки (новая строка), используемые в Windows, обычно - это возврат каретки (CR), за которым следует строка (LF), то есть (CRLF), тогда как Linux и Unix используют простой фид строки (LF)

Теперь, в моем случае, мой сервер сборки использует поддержку Linux и Unix-формата, поэтому ниже правила отлично работают на сервере сборки:

linebreak-style: ["error", "unix"]

Но я занимаюсь разработкой в ​​Windows, и мне нужно обновить правило для каждого нажатия git pull/git, как показано ниже,

linebreak-style: ["error", "windows"]

Итак, есть ли способ написать общее правило стиля строки для поддержки обеих сред, Linux/Unix и Windows?

Примечание. Я использую ECMAScript6 [js], WebStorm [ide] для разработки

Любые решения/предложения будут высоко оценены. Благодарю!

4b9b3361

Ответ 1

Файл конфигурации eslint может быть регулярным .js файлом (т.е. не JSON, а полным JS с логикой), который экспортирует объект конфигурации.

Это означает, что вы можете изменить конфигурацию правила linebreak-style в зависимости от текущей среды (или любой другой логики JS, о которой вы можете думать).

Например, для использования другой конфигурации linebreak-style, когда ваша среда node является "prod":

module.exports = {
    "root": true,
    "parserOptions": {
        "sourceType": "module",
        "ecmaVersion": 6
    },
    "rules": {
        // windows linebreaks when not in production environment
        "linebreak-style": ["error", process.env.NODE_ENV === 'prod' ? "unix" : "windows"]
    }
};

Пример использования:

$ NODE_ENV=prod node_modules/.bin/eslint src/test.js

src/test.js
  1:25  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style
  2:30  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style
  3:36  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style
  4:26  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style
  5:17  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style
  6:50  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style
  7:62  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style
  8:21  error  Expected linebreaks to be 'CRLF' but found 'LF'  linebreak-style

✖ 8 problems (8 errors, 0 warnings)

$ NODE_ENV=dev node_modules/.bin/eslint src/test.js
$ # no errors

Ответ 2

Я потратил время, пытаясь найти способ отключить стиль разрыва ссылок, и потерял его из-за возврата части своего кода, я думал, что другие тоже хотели бы иметь это.

В файле .eslintrc вы также можете установить linebreak-style .eslintrc linebreak-style на 0 что отключает функцию перевода строки:

module.exports = {
  extends: 'google',
  quotes: [2, 'single'],
  globals: {
    SwaggerEditor: false
  },
  env: {
    browser: true
  },
  rules:{
    "linebreak-style": 0   // <----------
  }
};

Ответ 3

.eslintc для Windows visualstudio code

{
  "env": {
    "node": true
  },
  "rules":{
    "linebreak-style": 0
  }
}

Ответ 4

Расположение конфигурационного файла, необходимого для изменения правил ESLint для стиля linebreak, может изменяться в зависимости от того, хотите ли вы изменить локальные, проектные или глобальные параметры, он сначала ищет локальный, который переопределяет их далее по дереву, поэтому измените на верхняя часть дерева для распространения вниз для глобальных

Я использовал стиль airbnb, и мои глобальные настройки были расположены здесь: node_modules/eslint-config-airbnb-base/rules/style.js:

Если вы не уверены в местонахождении файла, вы всегда можете найти список файлов, содержащих текст, относящийся к настройкам, в Linux, чтобы найти все файлы с настройками linebreak, перейдите к папке, где ESLint был установлен и используется:

grep -r linebreak

Ответ 6

Если вы используете Vs Code в Windows, перейдите в файл ".eslintrc.json" (или ".js" в зависимости от того, какой вариант вы выбрали при настройке ESLint); этот файл обычно находится в корневой папке вашего проекта; и под правилами добавьте параметр переноса строки для использования Windows CRLF следующим образом:

"rules": {
    "linebreak-style": ["error", "windows"]
}

Сохраните файл, и когда вы вернетесь к файлу JavaScript, все эти надоедливые красные линии исчезнут.