How can I write a ESLint rule for "linebreak-style", changing depending on Windows or Unix? How can I write a ESLint rule for "linebreak-style", changing depending on Windows or Unix? windows windows

How can I write a ESLint rule for "linebreak-style", changing depending on Windows or Unix?


I spent time trying to find how to shut off the linkbreak-style and lost it due to reverting some of my code I thought others my like to have this as well.

In the .eslintrc file you can also set linebreak-style to 0 which shuts off the linebreak feature:

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


The eslint configuration file can be a regular .js file (ie, not JSON, but full JS with logic) that exports the configuration object.

That means you could change the configuration of the linebreak-style rule depending on your current environment (or any other JS logic you can think of).

For example, to use a different linebreak-style configuration when your node environment is '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"]    }};

Example usage:

$ NODE_ENV=prod node_modules/.bin/eslint src/test.jssrc/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


In your .eslintrc.js:

"rules": {  "linebreak-style": ["error", (process.platform === "win32" ? "windows" : "unix")], // https://stackoverflow.com/q/39114446/2771889}

See also: How do I determine the current operating system with Node.js