从捆绑在一起的 JS 模块指向共同依赖的最佳方法是什么?

What is the best way to point to common dependency from JS modules bundled together?

(下面的代码是一个简单的例子,真实场景更大)

我有两个模块,mod1.jsmod2.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 有点笨拙,让我觉得必须有另一种方法。

是否有更好的方法来指向捆绑在一起的多个模块的共同依赖关系?

提前致谢!

在@Bergi 的 , I figured out that I was not using esbuild to bundle my files, but rather using Hugo to concatenate 他们的帮助下,并将其传递给 esbuild

这会导致提到的错误,因为在同一个文件 中有多个 import esbuild 正确地无法识别为有效。相反, 给了我正确的结果。

我仍在使用 Hugo,但我有一个它使用的入口点,import是我所有的脚本。例如,我有另一个文件,比如 master.js:

master.js:

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

然后我将这个 master.js 传递给 Hugo,使用它的 js.Build 函数,它在内部使用 esbuild。这样我就可以使用相同的别名导入 util.js,因为这些 import 位于单独的文件中,使用 ES6 linking from esbuild.