Вызов метода внутри экспортированного метода IIFE

У меня есть сценарий, в котором я хочу предоставить функцию с использованием модулей JS, этот сценарий скомпилирован с использованием esbuild.

предварительно транспилированный файл (index.mjs)

      const NakamaWrapper = require("./nakama").default

var NakamaJS;

export default function InitNakama(host, port, useSSL) {
    NakamaJS = new NakamaWrapper(host, port, useSSL);
    NakamaJS.initiate();
}

esbuild задача

      "build-dev": "./node_modules/.bin/esbuild ./src/index.mjs --bundle --sourcemap --target=es2015 --outfile=./dist/dev/pc-nakama.js",

экспортированный код (я заметил, что функция находится внутри IIFE)

код в html:

      import * as NakamaJS from "./pc-nakama.js"; 
NakamaJS.InitNakama("192.168.100.50", 7350, false);

ошибка:

      NakamaJS.InitNakama is not a function

источник моего проекта здесь

1 ответ

Формат вывода по умолчанию --format=iife но вы можете использовать --format=esm вместо этого выводить в формате модуля ECMAScript, который будет работать с import. Документы находятся здесь: https://esbuild.github.io/api/#format-esm .

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