Как заставить Typescript компилировать импорт CommonJS?
Я написал файл TS, который загружается в сторонний пакет, используя
import XXX { YYY, ABC, 123 }from 'XXX';
Он без проблем скомпилируется в CommonJS, и это нормально. Но я хотел бы скомпилировать его в ESModule. я изменил
target
а также
module
настройки для
esnext
в моем конфигурационном файле TS, и он компилируется, однако, когда я запускаю файл, он выдает ошибку:
SyntaxError: Named export 'ABC' not found. The requested module 'XXX' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:
import pkg from 'XXX';
const { ABC } = pkg;
Есть ли какие-либо настройки, которые я могу использовать, чтобы указать Typescript преобразовать импорт в тип импорта, показанный в сообщении об ошибке?
1 ответ
Вы можете попробовать
nodenext
вместо
esnext
для
module
параметр. В настоящее время это экспериментально, но, похоже, оно удовлетворяет ваши потребности с помощью взаимодействия с CommonJS.
Сам не пробовал, поэтому не обещаю, что сработает.