Extending ESLint config not working
Created by: conor-cafferkey-sociomantic
Describe the bug
Extending ESLint config not working.
Environment
System:
OS: macOS 10.14.6
CPU: (4) x64 Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz
Binaries:
Node: 8.15.0 - ~/.nvm/versions/node/v8.15.0/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v8.15.0/bin/npm
Browsers:
Chrome: 76.0.3809.100
Firefox: 67.0
Safari: 12.1.2
npmPackages:
react: ^16.9.0 => 16.9.0
react-dom: ^16.9.0 => 16.9.0
react-scripts: 3.1.0 => 3.1.0
npmGlobalPackages:
create-react-app: Not Found
Steps to reproduce
-
yarn create react-app testapp
(ornpx create-react-app testapp
) cd testapp
-
yarn add eslint-config-airbnb
(ornpm install eslint-config-airbnb
) - Add the following to
package.json
:
"eslintConfig": { "extends": [ "react-app", "airbnb"] }
-
EXTEND_ESLINT=true yarn start
( orEXTEND_ESLINT=true npm start
)
Expected behavior
-
eslint-config-airbnb
should be used - app should not compile
Actual behavior
-
eslint-config-airbnb
is not used - app compiles (it shouldn’t!)
Problem
webpack.config.js
checks thateslintConfig.extends
exists: https://github.com/facebook/create-react-app/blob/c0b4173d1bba37fde2d699fe9914d16f823bcbe5/packages/react-scripts/config/webpack.config.js#L355
and – if it does – that it includes 'react-app'
:
https://github.com/facebook/create-react-app/blob/c0b4173d1bba37fde2d699fe9914d16f823bcbe5/packages/react-scripts/config/webpack.config.js#L356
It seems that the property extends
never exists on eslintConfig
(??)
Deleting the above two lines yields the expected behavior (eslint-config-airbnb
is picked up and we see lint errors / Failed to compile
message)