From ae40264af67c2f7b577828e8226434cd55c8090e Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Thu, 29 Jun 2017 19:03:41 +0100 Subject: [PATCH 01/61] Publish - create-react-app@1.3.3 - react-dev-utils@3.0.2 - react-error-overlay@1.0.9 - react-scripts@1.0.10 --- packages/create-react-app/package.json | 2 +- packages/react-dev-utils/package.json | 2 +- packages/react-error-overlay/package.json | 4 ++-- packages/react-scripts/package.json | 17 +++++++---------- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 613007b40b1..28502ca077a 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "1.3.2", + "version": "1.3.3", "keywords": [ "react" ], diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 9fbbd76402c..b4539788d26 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "3.0.1", + "version": "3.0.2", "description": "Webpack utilities used by Create React App", "repository": "facebookincubator/create-react-app", "license": "BSD-3-Clause", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index dff62a58487..15bf9e484b4 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "1.0.8", + "version": "1.0.9", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "scripts": { @@ -34,7 +34,7 @@ "anser": "1.2.5", "babel-code-frame": "6.22.0", "babel-runtime": "6.23.0", - "react-dev-utils": "^3.0.1", + "react-dev-utils": "^3.0.2", "settle-promise": "1.0.0", "source-map": "0.5.6" }, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 39b2f69fa55..a92c17fb5d2 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts-ts", - "version": "2.6.0", + "version": "2.7.0", "description": "Configuration and scripts for Create React App.", "repository": "wmonk/create-react-app", "license": "BSD-3-Clause", @@ -13,7 +13,6 @@ "files": [ "bin", "config", - "bin", "scripts", "template", "utils" @@ -23,23 +22,21 @@ }, "dependencies": { "autoprefixer": "7.1.1", - "app-root-path": "^2.0.1", "case-sensitive-paths-webpack-plugin": "2.1.1", "chalk": "1.1.3", - "cli-highlight": "1.1.4", "css-loader": "0.28.4", "dotenv": "4.0.0", "extract-text-webpack-plugin": "2.1.2", "file-loader": "0.11.2", "fs-extra": "3.0.1", - "html-webpack-plugin": "2.28.0", - "jest": "20.0.3", + "html-webpack-plugin": "2.29.0", + "jest": "20.0.4", "object-assign": "4.1.1", "postcss-flexbugs-fixes": "3.0.0", - "postcss-loader": "2.0.5", + "postcss-loader": "2.0.6", "promise": "7.1.1", - "react-dev-utils": "^3.0.1", - "react-error-overlay": "^1.0.8", + "react-dev-utils": "^3.0.2", + "react-error-overlay": "^1.0.9", "style-loader": "0.18.2", "ts-jest": "^20.0.7", "ts-loader": "^2.2.1", @@ -49,7 +46,7 @@ "typescript": "~2.4.0", "source-map-loader": "^0.2.1", "sw-precache-webpack-plugin": "0.11.3", - "url-loader": "0.5.8", + "url-loader": "0.5.9", "webpack": "2.6.1", "webpack-dev-server": "2.5.0", "webpack-manifest-plugin": "1.1.0", From c8cb0040ee3e94b59aae8fd5d792fbe9e8257ff2 Mon Sep 17 00:00:00 2001 From: Kristoffer Date: Sat, 1 Jul 2017 16:49:49 +0200 Subject: [PATCH 02/61] allowTaggedTemplates to avoid warnings from SC's (#2701) --- packages/eslint-config-react-app/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index 7298a8c3b3d..a8b900f940d 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -185,6 +185,7 @@ module.exports = { { allowShortCircuit: true, allowTernary: true, + allowTaggedTemplates: true, }, ], 'no-unused-labels': 'warn', From 028b5c55de695c95c2592fa9cef32dcccff3d20c Mon Sep 17 00:00:00 2001 From: Danny Ho Date: Mon, 3 Jul 2017 13:03:00 -0700 Subject: [PATCH 03/61] Remove Windows note for source-map-explorer (#2719) Glob support has been added in source-map-explorer@1.4+ --- packages/react-scripts/template/README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 5775028406e..6df4d43d7f6 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1671,16 +1671,6 @@ Then in `package.json`, add the following line to `scripts`: "test": "react-scripts test --env=jsdom", ``` ->**Note:** -> ->This doesn't quite work on Windows because it doesn't automatically expand `*` in the filepath. For now, the workaround is to look at the full hashed filename in `build/static/js` (e.g. `main.89b7e95a.js`) and copy it into `package.json` when you're running the analyzer. For example: -> ->```diff ->+ "analyze": "source-map-explorer build/static/js/main.89b7e95a.js", ->``` -> ->Unfortunately it will be different after every build. You can express support for fixing this on Windows [in this issue](https://github.com/danvk/source-map-explorer/issues/52). - Then to analyze the bundle run the production build then run the analyze script. From fc2057c5f08f30382f6652d6614d6f0e13875277 Mon Sep 17 00:00:00 2001 From: Trygve Aaberge Date: Wed, 5 Jul 2017 00:44:55 +0200 Subject: [PATCH 04/61] Reorder vim arguments in launchEditor so --remote works (#2723) This allows you to set REACT_EDITOR to 'vim --remote', so the file can be opened in an already running vim process. When using vim without remote, it works in the same way as before. When launching vim without --remote, the order of the line and path arguments doesn't matter. However, when using --remote the line argument has to precede the path. This happens to be the same as joe and emacs uses, so the vim cases were just moved there. I haven't tested this with mvim, but the documentation says the same as the vim documentation, so I assume it works the same. --- packages/react-dev-utils/launchEditor.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/react-dev-utils/launchEditor.js b/packages/react-dev-utils/launchEditor.js index bcf0a506069..6f623dcf81b 100644 --- a/packages/react-dev-utils/launchEditor.js +++ b/packages/react-dev-utils/launchEditor.js @@ -58,9 +58,6 @@ function addWorkspaceToArgumentsIfExists(args, workspace) { function getArgumentsForLineNumber(editor, fileName, lineNumber, workspace) { const editorBasename = path.basename(editor).replace(/\.(exe|cmd|bat)$/i, ''); switch (editorBasename) { - case 'vim': - case 'mvim': - return [fileName, '+' + lineNumber]; case 'atom': case 'Atom': case 'Atom Beta': @@ -74,6 +71,8 @@ function getArgumentsForLineNumber(editor, fileName, lineNumber, workspace) { return [fileName + ':' + lineNumber]; case 'notepad++': return ['-n' + lineNumber, fileName]; + case 'vim': + case 'mvim': case 'joe': case 'emacs': case 'emacsclient': From fee4e579b42ea4ddd7d22e8acad12e8e2752feda Mon Sep 17 00:00:00 2001 From: Forbes Lindesay Date: Thu, 6 Jul 2017 16:47:41 +0100 Subject: [PATCH 05/61] Update link to issue blocking JSX hoisting (#2732) --- packages/babel-preset-react-app/index.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/babel-preset-react-app/index.js b/packages/babel-preset-react-app/index.js index c8f20dde61d..f6102dc0529 100644 --- a/packages/babel-preset-react-app/index.js +++ b/packages/babel-preset-react-app/index.js @@ -129,10 +129,7 @@ if (env === 'test') { if (env === 'production') { // Optimization: hoist JSX that never changes out of render() - // Disabled because of issues: - // * https://github.com/facebookincubator/create-react-app/issues/525 - // * https://phabricator.babeljs.io/search/query/pCNlnC2xzwzx/ - // * https://github.com/babel/babel/issues/4516 + // 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') From 4b856a7c795ee056eda7b2244d83b347b0f971f9 Mon Sep 17 00:00:00 2001 From: Dan Ristea Date: Fri, 7 Jul 2017 11:34:56 +0100 Subject: [PATCH 06/61] Support PyCharm in launchEditor (#2740) PyCharm has the same signature as WebStorm and PhpStorm ` --line ` so it can reuse the logic from those. https://www.jetbrains.com/help/pycharm/opening-files-from-command-line.html Tested with PyCharm Pro 2017.1.4 on MacOS 10.12 --- packages/react-dev-utils/launchEditor.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/react-dev-utils/launchEditor.js b/packages/react-dev-utils/launchEditor.js index 6f623dcf81b..bc1bd4d6e9d 100644 --- a/packages/react-dev-utils/launchEditor.js +++ b/packages/react-dev-utils/launchEditor.js @@ -91,6 +91,8 @@ function getArgumentsForLineNumber(editor, fileName, lineNumber, workspace) { case 'webstorm64': case 'phpstorm': case 'phpstorm64': + case 'pycharm': + case 'pycharm64': return addWorkspaceToArgumentsIfExists( ['--line', lineNumber, fileName], workspace From 31e3ffea78fe7993a86281d0fae260917b27c942 Mon Sep 17 00:00:00 2001 From: Mostafa Hajizadeh Date: Fri, 7 Jul 2017 15:07:32 +0430 Subject: [PATCH 07/61] Add "node" to Jest's moduleFileExtensions (#2738) Jest's default value for this option is ["js", "json", "jsx", "node"]. CRA's current value is ["web.js", "js", "json", "web.jsx", "jsx"], which is missing one of default ones: "node". This change fixes that. This "node" extension is used in packages that use native code. --- .../scripts/utils/createJestConfig.js | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 559f96f4516..c5886ce0cce 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -27,17 +27,6 @@ module.exports = (resolve, rootDir) => { collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}'], setupFiles: [resolve('config/polyfills.js')], setupTestFrameworkScriptFile: setupTestsFile, - moduleFileExtensions: [ - 'web.ts', - 'ts', - 'web.tsx', - 'tsx', - 'web.js', - 'js', - 'web.jsx', - 'jsx', - 'json', - ], testMatch: [ '/src/**/__tests__/**/*.ts?(x)', '/src/**/?(*.)(spec|test).ts?(x)', @@ -47,7 +36,7 @@ module.exports = (resolve, rootDir) => { transform: { '^.+\\.css$': resolve('config/jest/cssTransform.js'), '^.+\\.tsx?$': resolve('config/jest/typescriptTransform.js'), - '^(?!.*\\.(css|json)$)': resolve('config/jest/fileTransform.js'), + '^(?!.*\\.(js|jsx|css|json)$)': resolve('config/jest/fileTransform.js'), }, transformIgnorePatterns: [ '[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$', @@ -55,6 +44,18 @@ module.exports = (resolve, rootDir) => { moduleNameMapper: { '^react-native$': 'react-native-web', }, + moduleFileExtensions: [ + 'web.ts', + 'ts', + 'web.tsx', + 'tsx', + 'web.js', + 'js', + 'web.jsx', + 'jsx', + 'json', + 'node' + ], globals: { 'ts-jest': { tsConfigFile: paths.appTsTestConfig, From 63e8924f993891c0e92c8b072830735f0f181135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=84=C2=90inh=20Quang=20Trung?= Date: Fri, 7 Jul 2017 17:40:29 +0700 Subject: [PATCH 08/61] ESLint 4 (#2735) * Update eslint-loader 1.7.1 -> 1.9.0 * Add eslintPath option * Update eslint 3.19.0 -> 4.1.1 * Update peer dependencies * Move eslintPath config to outside @remove-on-eject --- packages/eslint-config-react-app/package.json | 2 +- packages/react-scripts/config/webpack.config.dev.js | 12 +++--------- packages/react-scripts/config/webpack.config.prod.js | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index cd36a70e5cb..559e78b256b 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -12,7 +12,7 @@ ], "peerDependencies": { "babel-eslint": "^7.2.3", - "eslint": "^3.19.0", + "eslint": "^4.1.1", "eslint-plugin-flowtype": "^2.33.0", "eslint-plugin-import": "^2.2.0", "eslint-plugin-jsx-a11y": "^5.0.3", diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 2934aeae6ab..97d7012cce9 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -162,14 +162,8 @@ module.exports = { { exclude: [ /\.html$/, - // We have to write /\.(js|jsx)(\?.*)?$/ rather than just /\.(js|jsx)$/ - // because you might change the hot reloading server from the custom one - // to Webpack's built-in webpack-dev-server/client?/, which would not - // get properly excluded by /\.(js|jsx)$/ because of the query string. - // Webpack 2 fixes this, but for now we include this hack. - // https://github.com/facebookincubator/create-react-app/issues/1713 - /\.(js|jsx)(\?.*)?$/, - /\.(ts|tsx)(\?.*)?$/, + /\.(js|jsx)$/, + /\.(ts|tsx)$/, /\.css$/, /\.json$/, /\.bmp$/, @@ -237,7 +231,7 @@ module.exports = { ], }, // ** STOP ** Are you adding a new loader? - // Remember to add the new extension(s) to the "url" loader exclusion list. + // Remember to add the new extension(s) to the "file" loader exclusion list. ], }, plugins: [ diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 8519c6603a3..0141675de10 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -189,7 +189,7 @@ module.exports = { { test: /\.(ts|tsx)$/, include: paths.appSrc, - loader: require.resolve('ts-loader') + loader: require.resolve('ts-loader'), }, // The notation here is somewhat confusing. // "postcss" loader applies autoprefixer to our CSS. From e0c2729b0d461b977e6cb9c9c4a149763854f7d9 Mon Sep 17 00:00:00 2001 From: Andreas Hoffmann Date: Sun, 9 Jul 2017 22:59:19 +0200 Subject: [PATCH 09/61] Use Rule.oneOf to resolve correct loader (#2747) * Use oneOf to resolve correct loader * Add html and json fallthrough again * Use oneOf to resolve correct loader in dev * Document file-loaders `js` exclusion * Remove `jsx` from exclusion in prod config --- .../config/webpack.config.dev.js | 137 +++++++------- .../config/webpack.config.prod.js | 179 +++++++++--------- 2 files changed, 155 insertions(+), 161 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 97d7012cce9..774201ac680 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -150,88 +150,85 @@ module.exports = { enforce: 'pre', include: paths.appSrc, }, - // ** ADDING/UPDATING LOADERS ** - // The "file" loader handles all assets unless explicitly excluded. - // The `exclude` list *must* be updated with every change to loader extensions. - // When adding a new loader, you must add its `test` - // as a new entry in the `exclude` list for "file" loader. - - // "file" loader makes sure those assets get served by WebpackDevServer. - // When you `import` an asset, you get its (virtual) filename. - // In production, they would get copied to the `build` folder. - { - exclude: [ - /\.html$/, - /\.(js|jsx)$/, - /\.(ts|tsx)$/, - /\.css$/, - /\.json$/, - /\.bmp$/, - /\.gif$/, - /\.jpe?g$/, - /\.png$/, - ], - loader: require.resolve('file-loader'), - options: { - name: 'static/media/[name].[hash:8].[ext]', - }, - }, - // "url" loader works like "file" loader except that it embeds assets - // smaller than specified limit in bytes as data URLs to avoid requests. - // A missing `test` is equivalent to a match. - { - test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], - loader: require.resolve('url-loader'), - options: { - limit: 10000, - name: 'static/media/[name].[hash:8].[ext]', - }, - }, - // Compile .tsx? - { - test: /\.(ts|tsx)$/, - include: paths.appSrc, - loader: require.resolve('ts-loader'), - }, - // "postcss" loader applies autoprefixer to our CSS. - // "css" loader resolves paths in CSS and adds assets as dependencies. - // "style" loader turns CSS into JS modules that inject