From 9f3d3b02b81373a64c0295795c9be14a54cbc48d Mon Sep 17 00:00:00 2001
From: David Loehr <david.loehr@zumper.com>
Date: Tue, 18 Jun 2019 13:47:41 -0400
Subject: [PATCH] Add dts-css-modules-loader to generate .d.ts files so
 TypeScript can understand less imports

---
 packages/react-scripts/config/webpack.config.js | 9 +++++++++
 packages/react-scripts/package.json             | 1 +
 2 files changed, 10 insertions(+)

diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js
index 771b06c94..fa796518f 100644
--- a/packages/react-scripts/config/webpack.config.js
+++ b/packages/react-scripts/config/webpack.config.js
@@ -86,6 +86,15 @@ module.exports = function(webpackEnv) {
   const getStyleLoaders = (cssOptions, preProcessor) => {
     const loaders = [
       isEnvDevelopment && require.resolve('style-loader'),
+      useTypeScript &&
+        isEnvDevelopment &&
+        cssOptions.modules && {
+          loader: require.resolve('dts-css-modules-loader'),
+          options: {
+            banner:
+              '// This file is generated automatically by dts-css-modules-loader',
+          },
+        },
       isEnvProduction && {
         loader: MiniCssExtractPlugin.loader,
         options: shouldUseRelativeAssetPaths ? { publicPath: '../../' } : {},
diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json
index a15c92d03..1f560f80a 100644
--- a/packages/react-scripts/package.json
+++ b/packages/react-scripts/package.json
@@ -42,6 +42,7 @@
     "css-loader": "2.1.1",
     "dotenv": "6.2.0",
     "dotenv-expand": "4.2.0",
+    "dts-css-modules-loader": "^1.0.1",
     "eslint": "^5.16.0",
     "eslint-config-react-app": "^4.0.1",
     "eslint-loader": "2.1.2",
-- 
GitLab