псевдоним пути работает в приложении create-react-app с машинописным текстом - PullRequest
0 голосов
/ 17 июня 2020

когда я работаю над приложением create-response-app и использую пакеты react-app-rewired и customize-cra для настройки конфигурации

я использую приведенный ниже код для добавления псевдонима пути к веб-пакету

const path = require('path');
const { override, addWebpackAlias, addLessLoader } = require('customize-cra');

module.exports = override(
    addWebpackAlias({
        '@': path.join(__dirname, 'src'),
    }),
    addLessLoader({
        lessOptions: {
            cssModules: {
                localIdentName: '[path][name]__[local]--[hash:base64:5]'
            },
        },
    })
);

, но когда я импортирую модульный файл less в файл tsx

import styles from "@/test.module.less"

, вывод сообщает мне

Cannot find module '@/test.module.less'. TS2307

, но когда я изменил приведенный выше код ниже

import "@/test.module.less"

Я примерно понимаю, что этот импорт в файл test.module.less как обычный файл less, без модульного

Когда я добавляю следующий код в response-app-env.d.ts файл

declare module "*.module.less" {
  const classes: { [key: string]: string };
  export default classes;
}

это отлично работает

У меня сейчас две проблемы

  • почему мне нужно объявить *.module.less модуль, чтобы псевдоним пути работал для этого

  • почему компилятор ts знает response-app-env.d.ts и загружает его, я создал новый файл index.d.ts в каталог sr c, почему компилятор ts его не знает и загружает

...