diff --git a/appveyor.cleanup-cache.txt b/appveyor.cleanup-cache.txt index ea6d1b9c010..d48a91fdf35 100644 --- a/appveyor.cleanup-cache.txt +++ b/appveyor.cleanup-cache.txt @@ -2,5 +2,3 @@ Edit this file to trigger a cache rebuild. http://help.appveyor.com/discussions/questions/1310-delete-cache ---- -Just testing if this works. -lalala. diff --git a/package.json b/package.json index 9a32bc1350f..28dab754040 100644 --- a/package.json +++ b/package.json @@ -4,21 +4,23 @@ "packages/*" ], "scripts": { - "build": "cd packages/react-scripts && node scripts/build.js", + "build": "cd packages/react-scripts && node bin/react-scripts.js build", + "build:with-stats": + "cd packages/react-scripts && node scripts/build.js --stats", "changelog": "lerna-changelog", "create-react-app": "node tasks/cra.js", "e2e": "tasks/e2e-simple.sh", "e2e:docker": "tasks/local-test.sh", "postinstall": "cd packages/react-error-overlay/ && yarn build:prod", "publish": "tasks/publish.sh", - "start": "cd packages/react-scripts && node scripts/start.js", + "start": "cd packages/react-scripts && node bin/react-scripts.js start", "screencast": "svg-term --cast hItN7sl5yfCPTHxvFg5glhhfp --out screencast.svg --window", - "test": "cd packages/react-scripts && node scripts/test.js --env=jsdom", + "test": "cd packages/react-scripts && node bin/react-scripts.js test --env=jsdom", "format": "prettier --trailing-comma es5 --single-quote --write 'packages/*/*.js' 'packages/*/!(node_modules)/**/*.js'", "precommit": "lint-staged" }, "devDependencies": { - "eslint": "^4.4.1", + "eslint": "4.15.0", "husky": "^0.13.2", "lerna": "2.6.0", "lerna-changelog": "^0.6.0", diff --git a/packages/babel-preset-react-app/dependencies.js b/packages/babel-preset-react-app/dependencies.js new file mode 100644 index 00000000000..ccb798cc2be --- /dev/null +++ b/packages/babel-preset-react-app/dependencies.js @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +module.exports = function(api, opts) { + if (!opts) { + opts = {}; + } + + // This is similar to how `env` works in Babel: + // https://babeljs.io/docs/usage/babelrc/#env-option + // We are not using `env` because it’s ignored in versions > babel-core@6.10.4: + // https://github.com/babel/babel/issues/4539 + // https://github.com/facebookincubator/create-react-app/issues/720 + // It’s also nice that we can enforce `NODE_ENV` being specified. + var env = process.env.BABEL_ENV || process.env.NODE_ENV; + var isEnvDevelopment = env === 'development'; + var isEnvProduction = env === 'production'; + var isEnvTest = env === 'test'; + if (!isEnvDevelopment && !isEnvProduction && !isEnvTest) { + throw new Error( + 'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + + '`BABEL_ENV` environment variables. Valid values are "development", ' + + '"test", and "production". Instead, received: ' + + JSON.stringify(env) + + '.' + ); + } + + return { + presets: [ + isEnvTest && [ + // ES features necessary for user's Node version + require('@babel/preset-env').default, + { + targets: { + node: 'current', + }, + // Do not transform modules to CJS + modules: false, + }, + ], + (isEnvProduction || isEnvDevelopment) && [ + // Latest stable ECMAScript features + require('@babel/preset-env').default, + { + // Do not transform modules to CJS + modules: false, + }, + ], + ].filter(Boolean), + }; +}; diff --git a/packages/babel-preset-react-app/index.js b/packages/babel-preset-react-app/index.js index 0d961af6f0f..4c9daa7161a 100644 --- a/packages/babel-preset-react-app/index.js +++ b/packages/babel-preset-react-app/index.js @@ -6,131 +6,110 @@ */ 'use strict'; -const plugins = [ - // class { handleClick = () => { } } - require.resolve('babel-plugin-transform-class-properties'), - // The following two plugins use Object.assign directly, instead of Babel's - // extends helper. Note that this assumes `Object.assign` is available. - // { ...todo, completed: true } - [ - require.resolve('babel-plugin-transform-object-rest-spread'), - { - useBuiltIns: true, - }, - ], - // Transforms JSX - [ - require.resolve('babel-plugin-transform-react-jsx'), - { - useBuiltIns: true, - }, - ], - // Polyfills the runtime needed for async/await and generators - [ - require.resolve('babel-plugin-transform-runtime'), - { - helpers: false, - polyfill: false, - regenerator: true, - }, - ], -]; - -// This is similar to how `env` works in Babel: -// https://babeljs.io/docs/usage/babelrc/#env-option -// We are not using `env` because it’s ignored in versions > babel-core@6.10.4: -// https://github.com/babel/babel/issues/4539 -// https://github.com/facebookincubator/create-react-app/issues/720 -// It’s also nice that we can enforce `NODE_ENV` being specified. -var env = process.env.BABEL_ENV || process.env.NODE_ENV; -if (env !== 'development' && env !== 'test' && env !== 'production') { - throw new Error( - 'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + - '`BABEL_ENV` environment variables. Valid values are "development", ' + - '"test", and "production". Instead, received: ' + - JSON.stringify(env) + - '.' - ); -} +module.exports = function(api, opts) { + if (!opts) { + opts = {}; + } -if (env === 'development' || env === 'test') { - // The following two plugins are currently necessary to make React warnings - // include more valuable information. They are included here because they are - // currently not enabled in babel-preset-react. See the below threads for more info: - // https://github.com/babel/babel/issues/4702 - // https://github.com/babel/babel/pull/3540#issuecomment-228673661 - // https://github.com/facebookincubator/create-react-app/issues/989 - plugins.push.apply(plugins, [ - // Adds component stack to warning messages - require.resolve('babel-plugin-transform-react-jsx-source'), - // Adds __self attribute to JSX which React will use for some warnings - require.resolve('babel-plugin-transform-react-jsx-self'), - ]); -} + // This is similar to how `env` works in Babel: + // https://babeljs.io/docs/usage/babelrc/#env-option + // We are not using `env` because it’s ignored in versions > babel-core@6.10.4: + // https://github.com/babel/babel/issues/4539 + // https://github.com/facebookincubator/create-react-app/issues/720 + // It’s also nice that we can enforce `NODE_ENV` being specified. + var env = process.env.BABEL_ENV || process.env.NODE_ENV; + var isEnvDevelopment = env === 'development'; + var isEnvProduction = env === 'production'; + var isEnvTest = env === 'test'; + if (!isEnvDevelopment && !isEnvProduction && !isEnvTest) { + throw new Error( + 'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + + '`BABEL_ENV` environment variables. Valid values are "development", ' + + '"test", and "production". Instead, received: ' + + JSON.stringify(env) + + '.' + ); + } -if (env === 'test') { - module.exports = { + return { presets: [ - // ES features necessary for user's Node version - [ - require('babel-preset-env').default, + isEnvTest && [ + // ES features necessary for user's Node version + require('@babel/preset-env').default, { targets: { node: 'current', }, }, ], - // JSX, Flow - require.resolve('babel-preset-react'), - ], - plugins: plugins.concat([ - // Compiles import() to a deferred require() - require.resolve('babel-plugin-dynamic-import-node'), - ]), - }; -} else { - module.exports = { - presets: [ - // Latest stable ECMAScript features - [ - require.resolve('babel-preset-env'), + (isEnvProduction || isEnvDevelopment) && [ + // Latest stable ECMAScript features + require('@babel/preset-env').default, { - targets: { - // React parses on ie 9, so we should too - ie: 9, - // We currently minify with uglify - // Remove after https://github.com/mishoo/UglifyJS2/issues/448 - uglify: true, - }, - // Disable polyfill transforms - useBuiltIns: false, + // `entry` transforms `@babel/polyfill` into individual requires for + // the targeted browsers. This is safer than `usage` which performs + // static code analysis to determine what's required. + // This is probably a fine default to help trim down bundles when + // end-users inevitably import '@babel/polyfill'. + useBuiltIns: 'entry', // Do not transform modules to CJS modules: false, }, ], - // JSX, Flow - require.resolve('babel-preset-react'), - ], - plugins: plugins.concat([ - // function* () { yield 42; yield 43; } [ - require.resolve('babel-plugin-transform-regenerator'), + require('@babel/preset-react').default, + { + // Adds component stack to warning messages + // Adds __self attribute to JSX which React will use for some warnings + development: isEnvDevelopment || isEnvTest, + }, + ], + [require('@babel/preset-flow').default], + ].filter(Boolean), + plugins: [ + // Experimental macros support. Will be documented after it's had some time + // in the wild. + require('babel-plugin-macros'), + // class { handleClick = () => { } } + require('@babel/plugin-proposal-class-properties').default, + // The following two plugins use Object.assign directly, instead of Babel's + // extends helper. Note that this assumes `Object.assign` is available. + // { ...todo, completed: true } + [ + require('@babel/plugin-proposal-object-rest-spread').default, { - // Async functions are converted to generators by babel-preset-env + useBuiltIns: true, + }, + ], + // Transforms JSX + [ + require('@babel/plugin-transform-react-jsx').default, + { + useBuiltIns: true, + }, + ], + // Polyfills the runtime needed for async/await and generators + [ + require('@babel/plugin-transform-runtime').default, + { + helpers: false, + polyfill: false, + regenerator: true, + }, + ], + // function* () { yield 42; yield 43; } + !isEnvTest && [ + require('@babel/plugin-transform-regenerator').default, + { + // Async functions are converted to generators by @babel/preset-env async: false, }, ], // Adds syntax support for import() - require.resolve('babel-plugin-syntax-dynamic-import'), - ]), + require('@babel/plugin-syntax-dynamic-import').default, + isEnvTest && + // Transform dynamic import to require + require('babel-plugin-transform-dynamic-import').default, + ].filter(Boolean), }; - - if (env === 'production') { - // Optimization: hoist JSX that never changes out of render() - // Disabled because of issues: https://github.com/facebookincubator/create-react-app/issues/553 - // TODO: Enable again when these issues are resolved. - // plugins.push.apply(plugins, [ - // require.resolve('babel-plugin-transform-react-constant-elements') - // ]); - } -} +}; diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index f020f99e0b8..c39dc805147 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -8,23 +8,23 @@ "url": "https://github.com/facebookincubator/create-react-app/issues" }, "files": [ - "index.js" + "index.js", + "dependencies.js" ], "dependencies": { - "babel-plugin-dynamic-import-node": "1.1.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-react-constant-elements": "6.23.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-plugin-transform-regenerator": "6.26.0", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.1", - "babel-preset-react": "6.24.1" - }, - "peerDependencies": { - "babel-runtime": "^6.23.0" + "@babel/core": "7.0.0-beta.37", + "@babel/plugin-proposal-class-properties": "7.0.0-beta.37", + "@babel/plugin-syntax-dynamic-import": "^7.0.0-beta.37", + "@babel/plugin-transform-classes": "7.0.0-beta.37", + "@babel/plugin-transform-react-constant-elements": "7.0.0-beta.37", + "@babel/plugin-transform-react-display-name": "7.0.0-beta.37", + "@babel/plugin-transform-react-jsx": "7.0.0-beta.37", + "@babel/plugin-transform-regenerator": "7.0.0-beta.37", + "@babel/plugin-transform-runtime": "7.0.0-beta.37", + "@babel/preset-env": "7.0.0-beta.37", + "@babel/preset-flow": "7.0.0-beta.37", + "@babel/preset-react": "7.0.0-beta.37", + "babel-plugin-macros": "2.0.0", + "babel-plugin-transform-dynamic-import": "2.0.0" } } diff --git a/packages/confusing-browser-globals/README.md b/packages/confusing-browser-globals/README.md new file mode 100644 index 00000000000..1f811f71041 --- /dev/null +++ b/packages/confusing-browser-globals/README.md @@ -0,0 +1,48 @@ +# confusing-browser-globals + +A curated list of browser globals that commonly cause confusion and are not recommended to use without an explicit `window.` qualifier. + +## Motivation + +Some global variables in browser are likely to be used by people without the intent of using them as globals, such as `status`, `name`, `event`, etc. + +For example: + +```js +handleClick() { // missing `event` argument + this.setState({ + text: event.target.value // uses the `event` global: oops! + }); +} +``` + +This package exports a list of globals that are often used by mistake. You can feed this list to a static analysis tool like ESLint to prevent their usage without an explicit `window.` qualifier. + + +## Installation + +``` +npm install --save confusing-browser-globals +``` + + +## Usage + +If you use Create React App, you don't need to configure anything, as this rule is already included in the default `eslint-config-react-app` preset. + +If you maintain your own ESLint configuration, you can do this: + +```js +var restrictedGlobals = require('confusing-browser-globals'); + +module.exports = { + rules: { + 'no-restricted-globals': ['error'].concat(restrictedGlobals), + } +}; +``` + + +## License + +MIT diff --git a/packages/confusing-browser-globals/index.js b/packages/confusing-browser-globals/index.js new file mode 100644 index 00000000000..98bf349962e --- /dev/null +++ b/packages/confusing-browser-globals/index.js @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +module.exports = [ + 'addEventListener', + 'blur', + 'close', + 'closed', + 'confirm', + 'defaultStatus', + 'defaultstatus', + 'event', + 'external', + 'find', + 'focus', + 'frameElement', + 'frames', + 'history', + 'innerHeight', + 'innerWidth', + 'length', + 'location', + 'locationbar', + 'menubar', + 'moveBy', + 'moveTo', + 'name', + 'onblur', + 'onerror', + 'onfocus', + 'onload', + 'onresize', + 'onunload', + 'open', + 'opener', + 'opera', + 'outerHeight', + 'outerWidth', + 'pageXOffset', + 'pageYOffset', + 'parent', + 'print', + 'removeEventListener', + 'resizeBy', + 'resizeTo', + 'screen', + 'screenLeft', + 'screenTop', + 'screenX', + 'screenY', + 'scroll', + 'scrollbars', + 'scrollBy', + 'scrollTo', + 'scrollX', + 'scrollY', + 'self', + 'status', + 'statusbar', + 'stop', + 'toolbar', + 'top', +]; diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json new file mode 100644 index 00000000000..211a2df30a9 --- /dev/null +++ b/packages/confusing-browser-globals/package.json @@ -0,0 +1,21 @@ +{ + "name": "confusing-browser-globals", + "version": "1.0.0", + "description": "A list of browser globals that are often used by mistake instead of local variables", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "jest" + }, + "repository": "facebookincubator/create-react-app", + "keywords": [ + "eslint", + "globals" + ], + "files": [ + "index.js" + ], + "devDependencies": { + "jest": "22.0.6" + } +} diff --git a/packages/confusing-browser-globals/test.js b/packages/confusing-browser-globals/test.js new file mode 100644 index 00000000000..bdc26204205 --- /dev/null +++ b/packages/confusing-browser-globals/test.js @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* eslint-env jest */ + +'use strict'; + +let globals = require('./index'); + +it('should return an Array of globals', () => { + expect(Array.isArray(globals)).toBe(true); +}); + +it('should contain "event" variable', () => { + expect(globals).toContain('event'); +}); diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 1b3b60aac80..1e2b57d1447 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -21,15 +21,15 @@ "create-react-app": "./index.js" }, "dependencies": { - "chalk": "^1.1.1", + "chalk": "^1.1.3", "commander": "^2.9.0", "cross-spawn": "^4.0.0", "envinfo": "^3.8.0", - "fs-extra": "^1.0.0", + "fs-extra": "^5.0.0", "hyperquest": "^2.1.2", "semver": "^5.0.3", "tar-pack": "^3.4.0", - "tmp": "0.0.31", + "tmp": "0.0.33", "validate-npm-package-name": "^3.0.0" } } diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index c7a619abd62..f029f9626bf 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -21,66 +21,7 @@ // This is dangerous as it hides accidentally undefined variables. // We blacklist the globals that we deem potentially confusing. // To use them, explicitly reference them, e.g. `window.name` or `window.status`. -var restrictedGlobals = [ - 'addEventListener', - 'blur', - 'close', - 'closed', - 'confirm', - 'defaultStatus', - 'defaultstatus', - 'event', - 'external', - 'find', - 'focus', - 'frameElement', - 'frames', - 'history', - 'innerHeight', - 'innerWidth', - 'length', - 'location', - 'locationbar', - 'menubar', - 'moveBy', - 'moveTo', - 'name', - 'onblur', - 'onerror', - 'onfocus', - 'onload', - 'onresize', - 'onunload', - 'open', - 'opener', - 'opera', - 'outerHeight', - 'outerWidth', - 'pageXOffset', - 'pageYOffset', - 'parent', - 'print', - 'removeEventListener', - 'resizeBy', - 'resizeTo', - 'screen', - 'screenLeft', - 'screenTop', - 'screenX', - 'screenY', - 'scroll', - 'scrollbars', - 'scrollBy', - 'scrollTo', - 'scrollX', - 'scrollY', - 'self', - 'status', - 'statusbar', - 'stop', - 'toolbar', - 'top', -]; +var restrictedGlobals = require('confusing-browser-globals'); module.exports = { root: true, @@ -225,13 +166,12 @@ module.exports = { 'valid-typeof': 'warn', 'no-restricted-properties': [ 'error', - // TODO: reenable once import() is no longer slow. - // https://github.com/facebookincubator/create-react-app/issues/2176 - // { - // object: 'require', - // property: 'ensure', - // message: 'Please use import() instead. More info: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#code-splitting', - // }, + { + object: 'require', + property: 'ensure', + message: + 'Please use import() instead. More info: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#code-splitting', + }, { object: 'System', property: 'import', @@ -239,6 +179,7 @@ module.exports = { 'Please use import() instead. More info: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#code-splitting', }, ], + 'getter-return': 'warn', // https://github.com/benmosher/eslint-plugin-import/tree/master/docs/rules 'import/first': 'error', @@ -271,13 +212,18 @@ module.exports = { 'jsx-a11y/accessible-emoji': 'warn', 'jsx-a11y/alt-text': 'warn', 'jsx-a11y/anchor-has-content': 'warn', + 'jsx-a11y/anchor-is-valid': [ + 'warn', + { + aspects: ['noHref', 'invalidHref'], + }, + ], 'jsx-a11y/aria-activedescendant-has-tabindex': 'warn', 'jsx-a11y/aria-props': 'warn', 'jsx-a11y/aria-proptypes': 'warn', 'jsx-a11y/aria-role': 'warn', 'jsx-a11y/aria-unsupported-elements': 'warn', 'jsx-a11y/heading-has-content': 'warn', - 'jsx-a11y/href-no-hash': 'warn', 'jsx-a11y/iframe-has-title': 'warn', 'jsx-a11y/img-redundant-alt': 'warn', 'jsx-a11y/no-access-key': 'warn', diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index a10ef679952..806b05b29a7 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -11,11 +11,14 @@ "index.js" ], "peerDependencies": { - "babel-eslint": "^7.2.3", + "babel-eslint": "^8.0.2", "eslint": "^4.1.1", "eslint-plugin-flowtype": "^2.34.1", "eslint-plugin-import": "^2.6.0", - "eslint-plugin-jsx-a11y": "^5.1.1", + "eslint-plugin-jsx-a11y": "^6.0.2", "eslint-plugin-react": "^7.1.0" + }, + "dependencies": { + "confusing-browser-globals": "^1.0.0" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index d6fe1bd3e45..2377e239b18 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -37,26 +37,26 @@ ], "dependencies": { "address": "1.0.3", - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", + "@babel/code-frame": "7.0.0-beta.37", + "chalk": "2.3.0", "cross-spawn": "5.1.0", "detect-port-alt": "1.1.3", "escape-string-regexp": "1.0.5", "filesize": "3.5.11", "global-modules": "1.0.0", - "gzip-size": "3.0.0", - "inquirer": "3.3.0", + "gzip-size": "4.1.0", + "inquirer": "5.0.0", "is-root": "1.0.0", "opn": "5.2.0", "react-error-overlay": "^3.0.0", "recursive-readdir": "2.2.1", "shell-quote": "1.6.1", "sockjs-client": "1.1.4", - "strip-ansi": "3.0.1", + "strip-ansi": "4.0.0", "text-table": "0.2.0" }, "devDependencies": { - "jest": "20.0.4" + "jest": "22.0.6" }, "scripts": { "test": "jest" diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 9808a9da81d..04e4cf4a778 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -30,25 +30,27 @@ "lib/index.js" ], "devDependencies": { + "@babel/code-frame": "7.0.0-beta.36", + "@babel/core": "7.0.0-beta.36", + "@babel/runtime": "7.0.0-beta.36", "anser": "1.4.4", - "babel-code-frame": "6.26.0", - "babel-core": "^6.26.0", - "babel-eslint": "7.2.3", - "babel-loader": "^7.1.2", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "^8.0.2", + "babel-jest": "^22.0.6", + "babel-loader": "^8.0.0-beta.0", "babel-preset-react-app": "^3.1.0", - "babel-runtime": "6.26.0", "chalk": "^2.1.0", "chokidar": "^1.7.0", "cross-env": "5.0.5", - "eslint": "4.4.1", + "eslint": "4.15.0", "eslint-config-react-app": "^2.0.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-jsx-a11y": "5.1.1", - "eslint-plugin-react": "7.1.0", + "eslint-plugin-flowtype": "2.41.0", + "eslint-plugin-import": "2.8.0", + "eslint-plugin-jsx-a11y": "6.0.3", + "eslint-plugin-react": "7.5.1", "flow-bin": "^0.63.1", "html-entities": "1.2.1", - "jest": "20.0.4", + "jest": "22.0.6", "jest-fetch-mock": "1.2.1", "object-assign": "4.1.1", "promise": "8.0.1", diff --git a/packages/react-error-overlay/src/containers/CompileErrorContainer.js b/packages/react-error-overlay/src/containers/CompileErrorContainer.js index 9d1e399fd10..3e9d4611860 100644 --- a/packages/react-error-overlay/src/containers/CompileErrorContainer.js +++ b/packages/react-error-overlay/src/containers/CompileErrorContainer.js @@ -32,14 +32,14 @@ class CompileErrorContainer extends PureComponent { return (
- editorHandler(errLoc) : null } style={canOpenInEditor ? codeAnchorStyle : null} > - +