File tree Expand file tree Collapse file tree 2 files changed +20
-2
lines changed Expand file tree Collapse file tree 2 files changed +20
-2
lines changed Original file line number Diff line number Diff line change 44 */
55'use strict' ;
66
7+ const resolve = require ( 'resolve' ) ;
78const log = require ( './log' ) ;
89
910let warnedForMissingVersion = false ;
@@ -12,7 +13,23 @@ function getReactVersionFromContext(context) {
1213 let confVer = '999.999.999' ;
1314 // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
1415 if ( context . settings . react && context . settings . react . version ) {
15- confVer = context . settings . react . version ;
16+ let settingsVer = context . settings . react . version ;
17+ if ( settingsVer === 'detect' ) {
18+ try {
19+ const reactPath = resolve . sync ( 'react' , { basedir : process . cwd ( ) } ) ;
20+ const react = require ( reactPath ) ;
21+ settingsVer = react . version ;
22+ } catch ( e ) {
23+ if ( e . code === 'MODULE_NOT_FOUND' ) {
24+ log ( 'Warning: React version was set to "detect" in eslint-plugin-react settings, ' +
25+ 'but the "react" package is not installed. Assuming latest React version for linting.' ) ;
26+ settingsVer = '999.999.999' ;
27+ } else {
28+ throw e ;
29+ }
30+ }
31+ }
32+ confVer = settingsVer ;
1633 } else if ( ! warnedForMissingVersion ) {
1734 log ( 'Warning: React version not specified in eslint-plugin-react settings. ' +
1835 'See https://github.com/yannickcr/eslint-plugin-react#configuration.' ) ;
Original file line number Diff line number Diff line change 2828 "doctrine" : " ^2.1.0" ,
2929 "has" : " ^1.0.3" ,
3030 "jsx-ast-utils" : " ^2.0.1" ,
31- "prop-types" : " ^15.6.2"
31+ "prop-types" : " ^15.6.2" ,
32+ "resolve" : " ^1.8.1"
3233 },
3334 "devDependencies" : {
3435 "babel-eslint" : " ^8.2.5" ,
You can’t perform that action at this time.
0 commit comments