Как запретить машинописному тексту передавать динамический импорт в require()? ⇐ Javascript
-
Гость
Как запретить машинописному тексту передавать динамический импорт в require()?
Я создаю бота discord.js Discord. Теперь по какой-то причине discord.js не работает с модулями ESM (совершенно отдельная проблема), поэтому мое приложение-бот использует модули CommonJS. . Теперь в моей системе есть еще один проект под названием Lib, в котором есть множество служебных функций, которые я планирую использовать в нескольких разных проектах, чтобы мне не пришлось их переписывать. В этом проекте Lib используются модули ESM. Поскольку мне нужно импортировать Lib из DiscordBot, я использую синтаксис динамического импорта в машинописном языке. Теперь, когда я транспилирую свой проект DiscordBot, динамический импорт преобразуется в какой-то уродливый код модуля JavaScript, и этот уродливый код модуля в конечном итоге приводит к использованию require(). Поскольку метод require() не может импортировать модули ESM, мой бот аварийно завершает работу.
Однако я попытался остановить мой компилятор ts, скопировать код из моего файла ts, который импортирует Lib, а затем вручную вставить этот код в соответствующий файл JS (и удалить эксклюзивные функции TS, такие как аннотации типов и интерфейсы). Затем я запустил свое бот-приложение, и оно работало отлично. Но я не хочу делать это каждый раз. Итак, проблема в компиляции tsc. Как это исправить?
Я создаю бота discord.js Discord. Теперь по какой-то причине discord.js не работает с модулями ESM (совершенно отдельная проблема), поэтому мое приложение-бот использует модули CommonJS. . Теперь в моей системе есть еще один проект под названием Lib, в котором есть множество служебных функций, которые я планирую использовать в нескольких разных проектах, чтобы мне не пришлось их переписывать. В этом проекте Lib используются модули ESM. Поскольку мне нужно импортировать Lib из DiscordBot, я использую синтаксис динамического импорта в машинописном языке. Теперь, когда я транспилирую свой проект DiscordBot, динамический импорт преобразуется в какой-то уродливый код модуля JavaScript, и этот уродливый код модуля в конечном итоге приводит к использованию require(). Поскольку метод require() не может импортировать модули ESM, мой бот аварийно завершает работу.
Однако я попытался остановить мой компилятор ts, скопировать код из моего файла ts, который импортирует Lib, а затем вручную вставить этот код в соответствующий файл JS (и удалить эксклюзивные функции TS, такие как аннотации типов и интерфейсы). Затем я запустил свое бот-приложение, и оно работало отлично. Но я не хочу делать это каждый раз. Итак, проблема в компиляции tsc. Как это исправить?
Мобильная версия