<b>Проблема с алиасами в проекте</b> <br/> <br/> У меня возникла проблема с использованием алиасов в проекте. В файле <b>main.ts</b> я импортирую модули, используя алиасы, но они, похоже, не работают. Вот код из <b>main.ts</b>: <pre><code class="typescript">import logger from 'utils/logger/logger' import { getBackendEnvironment } from './backend/backend.environments' import { getGlobalEnvironment } from './environments' import { getFrontendEnvironment } from './frontend/frontend.environments' import { globalStateMachine } from './state-machine' import { EnumLayoutType } from './types' async function bootstrap() { await getGlobalEnvironment() console.log(globalStateMachine.layoutType) if (globalStateMachine.layoutType === EnumLayoutType.backend) { await getBackendEnvironment() } else if (globalStateMachine.layoutType === EnumLayoutType.frontend) { await getFrontendEnvironment() return } else { throw new Error('Layout type is not passed') } } bootstrap() .then(() => console.log(logger.success('The template has been successfully created!')), ) .catch(error => { console.error(logger.error(error)) process.exit(1) }) .finally(() => console.log(logger.system('Process finished', '⏸️ ')))</code></pre> <br/> Также, вот настройки компилятора в <b>tsconfig.json</b>: <pre><code>{ "compilerOptions": { "target": "ES2021", "module": "commonjs", "lib": ["ES2021"], "baseUrl": "./", "paths": { "src/*": ["src/*"], "utils/*": ["src/utils/*"] }, "outDir": "dist", "esModuleInterop": true }, "include": ["src"] }</code></pre> <br/> И, наконец, вот часть <b>package.json</b>: <pre><code>{ "name": "kirove-layout", "version": "2.0.0", "main": "src/main.ts", "private": false, "license": "MIT", "scripts": { "dev": "ts-node-dev --respawn --transpile-only --exit-child src/main.ts", "s
Проблема может заключаться в нескольких аспектах. Давайте рассмотрим ваши настройки и код, чтобы выявить возможные причины, по которым алиасы не работают. ### 1. Проверка конфигурации `tsconfig.json` В ваших настройках `tsconfig.json` вы указали алиасы следующим образом: ```json "paths": { "src/*": ["src/*"], "utils/*": ["src/utils/*"] } ``` Это означает, что вы можете использовать алиасы, начинающиеся с `src/` и `utils/`. Однако в вашем коде импорты выглядят следующим образом: ```typescript import logger from 'utils/logger/logger' ``` Если `utils` — это алиас, то вам нужно убедиться, что он правильно настроен в `tsconfig.json` (что вроде бы так и есть). ### 2. Использование алиасов в `ts-node` Если вы используете `ts-node` для запуска вашего проекта, нужно убедиться, что он поддерживает алиасы из `tsconfig.json`. Попробуйте это сделать, используя флаг `-r tsconfig-paths/register` в вашем скрипте `dev` в `package.json`. Например: ```json "scripts": { "dev": "ts-node-dev --respawn --transpile-only --exit-child -r tsconfig-paths/register src/main.ts", } ``` Эта настройка подскажет `ts-node`, как разрешать пути на основе ваших алиасов. ### 3. Структура папок и файлов Убедитесь, что у вас действительно есть структура папок и имен файлов, соответствующая алиасам. Например, файл `logger.ts` должен находиться по пути `src/utils/logger/logger.ts`. ### 4. Перезапуск сервера После внесения изменений в конфигурацию и скрипты, убедитесь, что вы перезапускаете сервер разработки, чтобы изменения вступили в силу. ### 5. Убедитесь в отсутствии опечаток Проверьте, что нет опечаток в пути или в алиасах, что вполне может быть источником проблемы. ### Заключение Попробуйте внести изменения в скрипт `dev` и перезапустить его. Если алиасы все ещё не работают, проверьте структуру каталогов и наличие соответствующих файлов. Если проблема не решится, рассмотрите возможность использования отладчика для уточнения ситуации.
paths
вtsconfig
- это чисто справочная информация для подсветки, добавленная из расчёта, что вы уже используете какой-то сборщик который такие пути умеет.
Сам по себе он влияет точно и исключительно на подсветку, нужны сторонние сборщики и\или модули.
Это by design и wont fix.
Предполагаемое разработчиками решение: взять какой-ниь vite или webpack и настроить там руками точно такие же алиасы.
Популярный костыль, который сделает это за тебя для любых вариантов, в том числе и ts-node: tsconfig-paths