0

我正在处理一个网页,其中包含不提供 esm 导出的 js 文件,并且它们定义了其他文件所依赖的全局变量。像这样的东西:

<!-- index.html -->
...
<script src="first.js"></script>
<script src="second.js"></script>
...
/* first.js */
var someGlobalVariable = 'value';

/* second.js */
function anImportantFunc() {
  doSomethingWith(someGlobalVariable);
}
...
anImportantFunc();

该网页不使用任何 UI 框架。

我正在尝试缩小这些 js 文件,但可以理解的是,缩小器会更改全局变量的名称,而不会更新依赖于它们的其他文件,因此这些其他文件在遇到未定义的变量时会引发错误。有没有办法让压缩器意识到这一点,可能通过在某些/所有文件中指定要忽略的变量?类似于 eslint 允许您指定不应标记为未定义的全局变量。我知道这可能很困难,因为文件不像模块那样具有明确的依赖树关系。如果他们能很好地处理这种情况,我正在使用esbuild但对其他构建工具开放。谢谢。

4

0 回答 0