From f9e54d79d2c1983696562c9f73a6b8fedf8e47bc Mon Sep 17 00:00:00 2001 From: arnoldcui Date: Mon, 17 May 2021 00:25:35 +0800 Subject: [PATCH] support typescript aliased imports --- packages/react-scripts/config/webpack.config.js | 3 +++ packages/react-scripts/package.json | 1 + packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js | 1 - 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 5e5f87f3ce9..a99cdc7761e 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -40,6 +40,7 @@ const getCacheIdentifier = require('react-dev-utils/getCacheIdentifier'); const postcssNormalize = require('postcss-normalize'); const appPackageJson = require(paths.appPackageJson); +const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); // Source maps are resource heavy and can cause out of memory issue for large source files. const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false'; @@ -348,6 +349,8 @@ module.exports = function (webpackEnv) { ...(modules.webpackAliases || {}), }, plugins: [ + useTypeScript && new TsconfigPathsPlugin({ configFile: paths.appTsConfig }), + // Adds support for installing with Plug'n'Play, leading to faster installs and adding // guards against forgotten dependencies and such. PnpWebpackPlugin, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 29cfe9b8984..18a734d6e89 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -82,6 +82,7 @@ "style-loader": "1.3.0", "terser-webpack-plugin": "4.2.3", "ts-pnp": "1.2.0", + "tsconfig-paths-webpack-plugin": "^3.5.1", "url-loader": "4.1.1", "webpack": "4.44.2", "webpack-dev-server": "3.11.1", diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js index 949f34ab7d2..7b4283b2ce5 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js @@ -156,7 +156,6 @@ function verifyTypeScriptSetup() { : 'react', reason: 'to support the new JSX transform in React 17', }, - paths: { value: undefined, reason: 'aliased imports are not supported' }, }; const formatDiagnosticHost = {