Как заставить 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.

Сам не пробовал, поэтому не обещаю, что сработает.

Другие вопросы по тегам