Задать вопрос
@Wayne1212121

Node+ts module-alias не работает с import, но работает с require?

Всем привет!
В связке node+ts мне нужно использовать import, вместо require, для хорошей работы с интерфейсами.
Require не выдает ошибок при некорректных значениях, в отличии от import.
Проблема в том, что при импорте + module-alias выдается ошибка, мол модуль не найден

Например:
import { A } from '@/types/A.interface' // не работает
const { A } = require('A.interface') // видит модуль, но работает с ним некорректно


//Конфиг module-alias

const moduleAlias = require('module-alias');

const prefix = process.env.NODE_ENV ? '/dist/' : '/src/';

moduleAlias.addAliases({
    '@': `${__dirname}${ prefix }`,
});

moduleAlias();

export {};


Подскажите, что нужно делать, уже все перепробовал.
Спасибо!
  • Вопрос задан
  • 663 просмотра
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
Typescript только резолвит пути из алиасов, но не переводит их в настоящие, оставляя это за сборщиками.

Вариант 1: собирать проект с помощью webpack или rollup (или что Вам еще нравится)
https://www.npmjs.com/package/@rollup/plugin-alias
https://webpack.js.org/configuration/resolve/#reso...

Вариант 2: захачить require/import в node (в зависимости от того, что на выходе у TS), чтобы понимало Ваши алиасы
https://nodejs.org/dist/latest-v14.x/docs/api/esm....
Для commonjs хука нет, нужно патчить вот это: https://nodejs.org/dist/latest-v14.x/docs/api/modu...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы