У меня есть функция Azure (которая использует NodeJS), из которой я пытаюсь использовать модуль npm, опубликованный другой командой. После того, как npm добавил рассматриваемый модуль, я пытаюсь использовать его следующим образом:
import * as Model from "@thing/app-model";
...
const appModel: Model.TheModel = new Model.TheModel([]);
Однако, когда я пытаюсь запустить функцию Azure, я получаю эту ошибку:
[error] Worker was unable to load function pump: 'SyntaxError: Unexpected token export'
Результаты, связанные с этим сообщением об ошибке, которые я мог найти в Интернете, говорят, что эта ошибка обычно указывает на то, что я пытаюсь использовать модуль ES6, что-то, что Node не поддерживает (вместо этого я должен использовать модуль CommonJS). Проблема в том, что я думал, что модуль БЫЛ модулем CommonJS. tsconfig.json для проекта, создающего модуль, имеет эту строку в параметрах компилятора:
"module": "commonjs"
Чтобы проверить или исключить проблему ES6 и CommonJS, если я посмотрю на импортированный модуль в каталоге node_modules моей функции Azure, есть ли способ определить, посмотрев на него, является ли он модулем ES6 или модулем CommonJS?
Спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Конфигурация компилятора в репозитории, который вы импортируете, не сообщает вам, какой код загружается при установке пакета. Откройте package.json из импортированного пакета и проверьте, на что указывает основное свойство. Затем откройте этот файл, и вы увидите, какой код вы на самом деле получаете. Публикация пакета позволяет преобразовать код в любой формат, который автор хочет сделать доступным для пользователей пакета.
Найдите пакет npm в папке node_modules и откройте файл package.json.
Пакет может поддерживать CommonJs и/или ES6, поэтому у вас может быть комбинация.
Вы должны увидеть что-то вроде этого:
"main": "dist/index.js",
"module": "dist/my-module.esm.js",
main обычно указывает на версию CommonJs, а module указывает на версию ESM.
Это общий случай и не всегда верно. Иногда завершенный файл может показать вам, поддерживает ли он оба, например. index.cjs.js, index.esm.js
Ознакомьтесь с соответствующим вопросом stackoverflow.com/questions/42708484/… и сообщением в блоге, связанным там (medium.com/webpack/…), и теперь удаленной документацией github.com/nodejs/node-eps/blob/…, чтобы узнать, поможет ли это вам. У меня нет времени на то, чтобы дать правильный ответ, а ответы только по ссылкам неприемлемы, так что это все, что я могу указать вам прямо сейчас.