Как лучше всего указать на общую зависимость от модулей JS, объединенных вместе?

(Код ниже - простой пример, реальный сценарий больше)

У меня два модуля, mod1.js а также mod2.js, которые собраны вместе (с помощью esbuild). У них общая зависимость,util.js.

Проблема: когда код в mod2.js импорт util.js (используя тот же псевдоним), есть конфликт с именами.

util.js:

export class Util {
  ...
}

mod1.js:

import Util from "./util.js";
...

mod2.js:

/* this raises an error of variable already declared */
import Util from "./util.js";
...

Если я изменю псевдоним в mod2.js, ошибка исчезнет, ​​как и ожидалось. Но меняя псевдонимы каждый раз, когда я импортируюutil.js немного неуклюже и заставляет меня думать, что должен быть другой способ.

Есть ли лучший подход, чтобы указать на общую зависимость от нескольких модулей, объединенных вместе?

Заранее спасибо!

1 ответ

Решение

С помощью комментария @Bergi я понял, что не используюesbuildдля объединения моих файлов, а скорее с помощью Hugo для их объединения и передачи этого вesbuild.

Это приводит к упомянутой ошибке, потому что существует несколько imports в том же файле, которыйesbuildправильно не признает действительным. Вместо этого, используяesbuildобъединение моих файлов дает мне правильные результаты.

Я все еще использую Hugo, но у меня есть единственная точка входа, которую он использует, importвсе мои скрипты. Например, у меня есть другой файл, скажемmaster.js:

master.js:

import mod1 from "./mod1.js";
import mod2 from "./mod2.js";

И затем я передаю это master.js Хьюго, используя его js.Build функция, которая внутренне использует esbuild. Таким образом я могу импортироватьutil.js используя тот же псевдоним, потому что эти imports находятся в отдельных файлах, используя ссылку ES6 изesbuild.

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