From 9a1dc3dd137e1138c3f767e04f059857a9a69186 Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 08:59:42 +0100 Subject: [PATCH 01/18] added js and jsx to things that ts-loader loads --- packages/react-scripts/config/webpack.config.dev.js | 4 ++-- packages/react-scripts/config/webpack.config.prod.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index e5dd6766f..0b322343c 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -124,7 +124,7 @@ module.exports = { // please link the files into your node_modules/ and let module-resolution kick in. // Make sure your source files are compiled, as they will not be processed in any way. new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]), - new TsconfigPathsPlugin({configFile: paths.appTsConfig}) + new TsconfigPathsPlugin({ configFile: paths.appTsConfig }), ], }, module: { @@ -158,7 +158,7 @@ module.exports = { }, // Compile .tsx? { - test: /\.(ts|tsx)$/, + test: /\.(ts|tsx|js|jsx)$/, include: paths.appSrc, use: [ { diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 5fb2fb056..f933e33cb 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -130,7 +130,7 @@ module.exports = { // please link the files into your node_modules/ and let module-resolution kick in. // Make sure your source files are compiled, as they will not be processed in any way. new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]), - new TsconfigPathsPlugin({configFile: paths.appTsConfig}) + new TsconfigPathsPlugin({ configFile: paths.appTsConfig }), ], }, module: { @@ -162,7 +162,7 @@ module.exports = { }, // Compile .tsx? { - test: /\.(ts|tsx)$/, + test: /\.(ts|tsx|js|jsx)$/, include: paths.appSrc, use: [ { From 11630d65b968ec46edda85d4c7949352aca0e02f Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 09:04:03 +0100 Subject: [PATCH 02/18] removed spaces and made prettier runnable on windows --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4beaa5f8c..596eaa1ad 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "publish": "tasks/release.sh", "start": "node packages/react-scripts/scripts/start.js", "test": "node packages/react-scripts/scripts/test.js --env=jsdom", - "format": "prettier --trailing-comma es5 --single-quote --write 'packages/*/*.js' 'packages/*/!(node_modules)/**/*.js'", + "format": "prettier --trailing-comma es5 --single-quote --write \"packages/*/*.js\" \"packages/*/!(node_modules)/**/*.js\"", "precommit": "lint-staged" }, "devDependencies": { From 353282da90a54209e01ec02e755e80633d9b8107 Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 09:10:55 +0100 Subject: [PATCH 03/18] run jsx specs too --- packages/react-scripts/scripts/utils/createJestConfig.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 3a744c971..a71f99c64 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -25,8 +25,8 @@ module.exports = (resolve, rootDir) => { setupFiles: [resolve('config/polyfills.js')], setupTestFrameworkScriptFile: setupTestsFile, testMatch: [ - '/src/**/__tests__/**/*.ts?(x)', - '/src/**/?(*.)(spec|test).ts?(x)', + '/src/**/__tests__/**/*.(j|t)s?(x)', + '/src/**/?(*.)(spec|test).(j|t)s?(x)', ], testEnvironment: 'node', testURL: 'http://localhost', @@ -38,7 +38,7 @@ module.exports = (resolve, rootDir) => { ), }, transformIgnorePatterns: [ - '[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|ts|tsx)$' + '[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|ts|tsx)$', ], moduleNameMapper: { '^react-native$': 'react-native-web', From 9c17cd9db3500574a24ff4fc74c3ccfe906711b4 Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 09:45:03 +0100 Subject: [PATCH 04/18] added isejecting --- packages/react-scripts/scripts/utils/createJestConfig.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index a71f99c64..9eaa5b532 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -11,7 +11,7 @@ const fs = require('fs'); const chalk = require('chalk'); const paths = require('../../config/paths'); -module.exports = (resolve, rootDir) => { +module.exports = (resolve, rootDir, isEjecting) => { // Use this instead of `paths.testsSetup` to avoid putting // an absolute filename into configuration after ejecting. const setupTestsFile = fs.existsSync(paths.testsSetup) @@ -31,6 +31,9 @@ module.exports = (resolve, rootDir) => { testEnvironment: 'node', testURL: 'http://localhost', transform: { + '^.+\\.(js|jsx)$': isEjecting + ? '/node_modules/babel-jest' + : resolve('config/jest/babelTransform.js'), '^.+\\.tsx?$': resolve('config/jest/typescriptTransform.js'), '^.+\\.css$': resolve('config/jest/cssTransform.js'), '^(?!.*\\.(js|jsx|mjs|css|json)$)': resolve( From edcf23166e4c0204fa4982011c9061af53c365ee Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 09:53:32 +0100 Subject: [PATCH 05/18] added dependencies and babeltransform --- .../react-scripts/config/jest/babelTransform.js | 16 ++++++++++++++++ packages/react-scripts/package.json | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 packages/react-scripts/config/jest/babelTransform.js diff --git a/packages/react-scripts/config/jest/babelTransform.js b/packages/react-scripts/config/jest/babelTransform.js new file mode 100644 index 000000000..bee55b1b1 --- /dev/null +++ b/packages/react-scripts/config/jest/babelTransform.js @@ -0,0 +1,16 @@ +// @remove-file-on-eject +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +'use strict'; + +const babelJest = require('babel-jest'); + +module.exports = babelJest.createTransformer({ + presets: [require.resolve('babel-preset-react-app')], + babelrc: false, +}); diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 713b5eaed..67217e73f 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -22,6 +22,8 @@ }, "dependencies": { "autoprefixer": "7.1.6", + "babel-jest": "^22.1.0", + "babel-preset-react-app": "^3.1.1", "case-sensitive-paths-webpack-plugin": "2.1.1", "chalk": "1.1.3", "css-loader": "0.28.7", From 0b6dac31fd780994ee43c1bbe4459521fd32434d Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 10:31:06 +0100 Subject: [PATCH 06/18] bumped jest version# --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 67217e73f..611f037e9 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -33,7 +33,7 @@ "fork-ts-checker-webpack-plugin": "^0.2.8", "fs-extra": "3.0.1", "html-webpack-plugin": "2.29.0", - "jest": "20.0.4", + "jest": "22.1.4", "object-assign": "4.1.1", "postcss-flexbugs-fixes": "3.2.0", "postcss-loader": "2.0.8", From 2122eb5805b16c5e0816e3a86ddc5ebffed1761f Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 10:40:31 +0100 Subject: [PATCH 07/18] does it work without cache? --- .travis.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 167fc436b..ac6916fad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,7 @@ language: node_js node_js: - 6 - 8 -cache: - directories: - - node_modules - - packages/create-react-app/node_modules - - packages/react-scripts/node_modules +cache: false install: true script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' From 783abf1c34ea56f45097f7ec5d44bedd76f81cce Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 10:48:26 +0100 Subject: [PATCH 08/18] cache? --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ac6916fad..167fc436b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,11 @@ language: node_js node_js: - 6 - 8 -cache: false +cache: + directories: + - node_modules + - packages/create-react-app/node_modules + - packages/react-scripts/node_modules install: true script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' From a1c9ebf3aa868b367b7a95f3328ed8c178c28241 Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 10:50:25 +0100 Subject: [PATCH 09/18] added ts --- packages/react-scripts/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 611f037e9..6f310a129 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -56,7 +56,8 @@ }, "devDependencies": { "react": "^15.5.4", - "react-dom": "^15.5.4" + "react-dom": "^15.5.4", + "typescript": "^2.6.2" }, "peerDependencies": { "typescript": "2.x" From cf4964ebeea9f43be6e763f1e6638a0b3762ea7c Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 10:57:18 +0100 Subject: [PATCH 10/18] updates ts-jest --- .travis.yml | 6 +----- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 167fc436b..ac6916fad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,7 @@ language: node_js node_js: - 6 - 8 -cache: - directories: - - node_modules - - packages/create-react-app/node_modules - - packages/react-scripts/node_modules +cache: false install: true script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 6f310a129..099803ddb 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -43,7 +43,7 @@ "source-map-loader": "^0.2.1", "style-loader": "0.19.0", "sw-precache-webpack-plugin": "0.11.4", - "ts-jest": "^20.0.7", + "ts-jest": "22.0.1", "ts-loader": "^2.3.7", "tsconfig-paths-webpack-plugin": "^2.0.0", "tslint": "^5.7.0", From 7ad85140ebb21f212d7a9ced4b48844d0a127ccc Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sat, 27 Jan 2018 11:09:21 +0100 Subject: [PATCH 11/18] readd caching --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ac6916fad..167fc436b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,11 @@ language: node_js node_js: - 6 - 8 -cache: false +cache: + directories: + - node_modules + - packages/create-react-app/node_modules + - packages/react-scripts/node_modules install: true script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' From 506506e1848aa006947d1babe7ec908d9f3a3ba4 Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Wed, 31 Jan 2018 14:07:36 +0100 Subject: [PATCH 12/18] removed ts as a devdependency --- .travis.yml | 6 +----- packages/react-scripts/package.json | 3 +-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 167fc436b..ac6916fad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,7 @@ language: node_js node_js: - 6 - 8 -cache: - directories: - - node_modules - - packages/create-react-app/node_modules - - packages/react-scripts/node_modules +cache: false install: true script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 099803ddb..62151a1a0 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -56,8 +56,7 @@ }, "devDependencies": { "react": "^15.5.4", - "react-dom": "^15.5.4", - "typescript": "^2.6.2" + "react-dom": "^15.5.4" }, "peerDependencies": { "typescript": "2.x" From 80c3f0df76f2965941fc84eca52214e39d737560 Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sun, 4 Feb 2018 18:23:14 +0100 Subject: [PATCH 13/18] added babel to handle js files --- .../react-scripts/config/webpack.config.dev.js | 15 ++++++++++++++- packages/react-scripts/package.json | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 0b322343c..ed7d6400d 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -156,9 +156,22 @@ module.exports = { name: 'static/media/[name].[hash:8].[ext]', }, }, + { + test: /\.(js|jsx|mjs)$/, + include: paths.appSrc, + loader: require.resolve('babel-loader'), + options: { + // @remove-on-eject-begin + babelrc: false, + presets: [require.resolve('babel-preset-react-app')], + // @remove-on-eject-end + compact: true, + }, + }, + // Compile .tsx? { - test: /\.(ts|tsx|js|jsx)$/, + test: /\.(ts|tsx)$/, include: paths.appSrc, use: [ { diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 62151a1a0..49ea43a1f 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -23,6 +23,7 @@ "dependencies": { "autoprefixer": "7.1.6", "babel-jest": "^22.1.0", + "babel-loader": "^7.1.2", "babel-preset-react-app": "^3.1.1", "case-sensitive-paths-webpack-plugin": "2.1.1", "chalk": "1.1.3", From ff4fc18edc60df770583b2e993c6a954905365cc Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sun, 4 Feb 2018 18:24:19 +0100 Subject: [PATCH 14/18] added prod env --- .../react-scripts/config/webpack.config.prod.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index f933e33cb..65b50efa2 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -160,9 +160,21 @@ module.exports = { name: 'static/media/[name].[hash:8].[ext]', }, }, + { + test: /\.(js|jsx|mjs)$/, + include: paths.appSrc, + loader: require.resolve('babel-loader'), + options: { + // @remove-on-eject-begin + babelrc: false, + presets: [require.resolve('babel-preset-react-app')], + // @remove-on-eject-end + compact: true, + }, + }, // Compile .tsx? { - test: /\.(ts|tsx|js|jsx)$/, + test: /\.(ts|tsx)$/, include: paths.appSrc, use: [ { From 1e0a7e4386c28bdf34fd92007519f670b50a49bf Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sun, 4 Feb 2018 18:26:34 +0100 Subject: [PATCH 15/18] prod is handled by babel loader --- packages/react-scripts/scripts/utils/createJestConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 9eaa5b532..ecbb6791b 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -31,7 +31,7 @@ module.exports = (resolve, rootDir, isEjecting) => { testEnvironment: 'node', testURL: 'http://localhost', transform: { - '^.+\\.(js|jsx)$': isEjecting + '^.+\\.(js|jsx|mjs)$': isEjecting ? '/node_modules/babel-jest' : resolve('config/jest/babelTransform.js'), '^.+\\.tsx?$': resolve('config/jest/typescriptTransform.js'), From f9e680ff4277dad89f7252d11c522d810b6f7c49 Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sun, 4 Feb 2018 18:27:20 +0100 Subject: [PATCH 16/18] added ts as devdep --- packages/react-scripts/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 49ea43a1f..1a89a04a2 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -57,7 +57,8 @@ }, "devDependencies": { "react": "^15.5.4", - "react-dom": "^15.5.4" + "react-dom": "^15.5.4", + "typescript": "^2.7.1" }, "peerDependencies": { "typescript": "2.x" From 5a75e0ecb92eb365875432ab86721423c04c7b0a Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Sun, 4 Feb 2018 18:39:14 +0100 Subject: [PATCH 17/18] cache node modules --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ac6916fad..167fc436b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,11 @@ language: node_js node_js: - 6 - 8 -cache: false +cache: + directories: + - node_modules + - packages/create-react-app/node_modules + - packages/react-scripts/node_modules install: true script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' From 69eaa289bb50d000fb930b8f8766da0f7314801e Mon Sep 17 00:00:00 2001 From: Gustav Wengel Date: Mon, 12 Feb 2018 10:12:04 +0100 Subject: [PATCH 18/18] fixed legal --- packages/react-scripts/config/jest/babelTransform.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/react-scripts/config/jest/babelTransform.js b/packages/react-scripts/config/jest/babelTransform.js index bee55b1b1..02742e90c 100644 --- a/packages/react-scripts/config/jest/babelTransform.js +++ b/packages/react-scripts/config/jest/babelTransform.js @@ -1,10 +1,9 @@ // @remove-file-on-eject /** - * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * Copyright (c) 2014-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ 'use strict';