Алиасы импортов для React приложений (Vite)
Разработка React приложений с использованием Vite может значительно улучшить вашу производительность и удобство создания. Одним из способов улучшить работу с кодом является использование алиасов импортов.
Алиасы импортов позволяют упростить и улучшить читаемость кода, а также уменьшить количество ошибок при импорте компонентов, модулей и файлов. Таким образом, вы можете создать собственные пути импорта, которые будут ссылаться на определенные директории или файлы в вашем проекте.
Для использования алиасов импортов в React приложениях с Vite, вам следует создать файл vite.config.js в корне вашего проекта. В этом файле вы можете определить алиасы для импорта, указав соответствующие пути к файлам или директориям.
“`javascript
// vite.config.js
import { defineConfig } from ‘vite’;
export default defineConfig({
resolve: {
alias: {
‘@components’: ‘/src/components’,
‘@styles’: ‘/src/styles’,
// Другие алиасы
},
},
});
“`
В приведенном примере мы определяем два алиаса: @components и @styles. Теперь мы можем импортировать компоненты и стили с использованием этих алиасов:
“`javascript
import Header from ‘@components/Header’;
import styles from ‘@styles/main.css’;
“`
Также можно использовать алиасы импортов внутри файлов JavaScript или TypeScript, указав путь к файлу vite.config.js:
“`javascript
// В файле /src/components/Navbar.js
import Logo from ‘@/assets/logo.png’;
“`
Теперь при разработке React приложений с использованием Vite вы можете удобно импортировать компоненты, стили и другие ресурсы с помощью алиасов, что значительно улучшит ваш опыт разработки.
Неудобно, если честно – новую папку создал и надо ее ручками в конфигах прописывать.. Я бы хотел чтобы работало как в первом варианте, но не писать src/ в начале. Нигде не нашел решения. Хотя в CRA можно было так сделать
пробую переделать с вебпака на вит, почти получилось. но вот ошибка Expected "from" but found "{" в конструкции import type { foo} from никак не решается. написано что в новых версиях это решено, но это уже было давно и сейчас ерсии еще новее. можно ли это как-то решить?
Михаил, закрепи, пожалуйста, пусть люди пользуются
Для vite есть плагин tsconfigPaths (vite-tsconfig-paths), который позволяет не писать второй раз алиасы в vite.config, vite сам будет их подтягивать из tsconfig
спасибо большое
Спасибоооооооооооооооооооооооооооооооо
Мне не нравится то, что в проекте с использованием TypeScript, у нас отключается авто-лог ошибок при сохранении файлов. Там только сообщение о том, что сервак успешно запущен. Нужно прописывать команду tsc.
Со стандартным create react app работал код
{
"compilerOptions": {
"baseUrl": "src"
},
"include": [
"src"
]
}
А с Vite почему-то не работает. Кто может подсказать, дайте совет, пожалуйста.
Второй сценарий в настройке alias vite почему-то не срабатывает с папкой redux. Из-за этого пользуюсь первым сценарием.
Была проблема "unable to resolve path alias"… Нашел решение : 1) установить eslint-import-resolver-typescript 2) добавить в eslint конфиг ` settings: {
'import/resolver': {
typescript: {},
alias: {
map: [
['@', './src'],
],
},
},`
Как добавить то что справа gzipped? +
в webstorm это не работает, автоимпорт работает от ../src/components и т.д.
вот сегодня это добавлю в свой проект=)
большое спасибо за объяснение, Михаил!
В целом по настройке, почти так же, как на вебпак, что радует ☺️🙏🏻.
Спасибо за видео! Как дополнительный вариант можно задать "baseUrl": "src" в tsconfig.json и использовать "vite-tsconfig-paths" плагин
Я когда искал решение для алиасов в вите использовал следующий сценарий для файла vite.config.ts: plugins: [react(), tsconfigPaths()]
Еще какую-нибудь либу можешь посоветовать, для алиасов?
Storybook + Vite, пожалуууйста)
Thanks for you videos
Видос ТОП!👍