From b36d1ea1aa1458907839da9dd5028a372f9d48d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Nison?= Date: Wed, 1 May 2019 23:04:44 +0200 Subject: [PATCH] Adds the configuration for PnP/Typescript (#6856) * Adds the configuration for PnP/Typescript * Adds the header * Bumps ts-pnp * Bumps fork-ts-checker-webpack-plugin --- packages/react-dev-utils/package.json | 2 +- packages/react-scripts/config/pnpTs.js | 43 +++++++++++++++++++ .../react-scripts/config/webpack.config.js | 6 +++ packages/react-scripts/package.json | 1 + 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 packages/react-scripts/config/pnpTs.js diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 7e20cdee..f94efb81 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -59,7 +59,7 @@ "escape-string-regexp": "1.0.5", "filesize": "3.6.1", "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.0.1", + "fork-ts-checker-webpack-plugin": "1.1.1", "global-modules": "2.0.0", "globby": "8.0.2", "gzip-size": "5.0.0", diff --git a/packages/react-scripts/config/pnpTs.js b/packages/react-scripts/config/pnpTs.js new file mode 100644 index 00000000..ed810df6 --- /dev/null +++ b/packages/react-scripts/config/pnpTs.js @@ -0,0 +1,43 @@ +// @remove-on-eject-begin +/** + * 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. + */ +// @remove-on-eject-end +'use strict'; + +const { resolveModuleName } = require('ts-pnp'); + +exports.resolveModuleName = ( + typescript, + moduleName, + containingFile, + compilerOptions, + resolutionHost +) => { + return resolveModuleName( + moduleName, + containingFile, + compilerOptions, + resolutionHost, + typescript.resolveModuleName + ); +}; + +exports.resolveTypeReferenceDirective = ( + typescript, + moduleName, + containingFile, + compilerOptions, + resolutionHost +) => { + return resolveModuleName( + moduleName, + containingFile, + compilerOptions, + resolutionHost, + typescript.resolveTypeReferenceDirective + ); +}; diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index c327f516..8f70442d 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -637,6 +637,12 @@ module.exports = function(webpackEnv) { async: isEnvDevelopment, useTypescriptIncrementalApi: true, checkSyntacticErrors: true, + resolveModuleNameModule: process.versions.pnp + ? `${__dirname}/pnpTs.js` + : undefined, + resolveTypeReferenceDirectiveModule: process.versions.pnp + ? `${__dirname}/pnpTs.js` + : undefined, tsconfig: paths.appTsConfig, reportFiles: [ '**', diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index c068f4bd..08a3b46a 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -74,6 +74,7 @@ "semver": "6.0.0", "style-loader": "0.23.1", "terser-webpack-plugin": "1.2.3", + "ts-pnp": "1.1.2", "url-loader": "1.1.2", "webpack": "4.29.6", "webpack-dev-server": "3.2.1",