Решение на 2021 год.
Примечание: CRA. Изначально идея использования сторонней библиотеки или извлечения приложения для псевдонима казалась мне безумной. Однако после 8 часов поиска (и опробования варианта с извлечением) выяснилось, что этот вариант наименее болезненный.
Шаг 1.
yarn add --dev react-app-rewired react-app-rewire-alias
Шаг 2. Создайте файл config-overrides.js в корне вашего проекта и заполните его:
const {alias} = require('react-app-rewire-alias')
module.exports = function override(config) {
return alias({
assets: './src/assets',
'@components': './src/components',
})(config)
}
Шаг 3. Исправьте файл package.json:
"scripts": {
- "start": "react-scripts start",
+ "start": "react-app-rewired start",
- "build": "react-scripts build",
+ "build": "react-app-rewired build",
- "test": "react-scripts test",
+ "test": "react-app-rewired test",
"eject": "react-scripts eject"
}
Если @declarations не работают, добавьте их в файл d.ts. Например: '@constants': './src/constants'
, = ›добавить в response-app-env.d.ts declare module '@constants';
Это все. Теперь вы можете продолжать использовать команды yarn или npm start / build / test как обычно.
Полная версия в документации.
Примечание. Часть «Использование с конфигурацией ts / js» в документации не сработала для меня. Импорт с псевдонимом ошибки не поддерживается, когда сборка проекта осталась. Поэтому я использовал более простой способ. К счастью, это работает.
person
MadaShindeInai
schedule
11.01.2021