Как лучше всего указать на общую зависимость от модулей 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
.
Это приводит к упомянутой ошибке, потому что существует несколько import
s в том же файле, который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
используя тот же псевдоним, потому что эти import
s находятся в отдельных файлах, используя ссылку ES6 изesbuild
.