Решаем ад импортов в Create React App: алиасы через CRACO или react-app-rewired
- Опубликовано
- • 1 мин чтения•--- просмотров
Очень важно иметь единообразные import-конструкции в твоих react-проектах и избегать ада относительных путей: например, ../../../utils/smth.ts выглядит намного уродливее, чем ~/utils/smth.ts.
К сожалению, последние версии typescript поддерживают этот трюк всё хуже и хуже (если честно, не знаю почему).
Используем пакет @craco/craco
Шаги установки:
yarn add @craco/cracoСоздай файл
craco.config.jsв корне проектаПомести текст ниже в
craco.config.js:const path = require('path'); module.exports = { webpack: { alias: { '~': path.resolve(__dirname, 'src'), }, }, };Измени react-скрипты в
package.jsonна:"scripts": { "start": "craco start", "build": "craco build", "test": "craco test", "eject": "craco eject" }Запусти проект и проверь, что всё работает:
yarn start
Используем react-app-rewired и customize-cra
Шаги установки:
yarn add react-app-rewiredyarn add customize-craВ
config-overrides.jsдобавь эти строки:const { addWebpackAlias } = require('customize-cra'); const path = require('path'); //... in module.export of configuration section: addWebpackAlias({ '~': path.resolve(__dirname, './src'), // ... });И не забудь добавить похожие алиасы в
tsconfig.json:"paths": { "~/*": [ "./src/*" ], },
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта — запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок