与webpack绑定后,由于当前页面中不存在元素,因此更正Javascript错误



我目前在一个没有任何bundler的项目中使用webpack。它有几个html页面和一些与每个页面相关联的javascript文件。

捆绑这些文件后,我发现我会收到错误,因为"元素A"不在"页面B"上,因此它会抛出一个错误。

这里最好的方法是什么?在每个事件侦听器上使用"if"进行检查是一种很好的做法吗?我觉得这有点不对。有更好的方法吗?创建一个包含所有DOM元素的Object并导入它?

我想我是在问这个特殊情况下是否有最佳实践。

您基本上有三个选项:

  1. 创建每页捆绑包,其中只包括与该页面相关的脚本。如果有很多脚本代码被多个页面使用,这意味着每个捆绑包都将包含该脚本代码;如果用户在您的项目中逐页移动,他们将重新下载这些公共位,作为每个单独捆绑包的一部分。与选项#2相比,捆绑包的这些冗余部分将消耗更多的带宽和缓存空间(同样,假设项目中有页面到页面的导航(。

  2. 创建一个所有页面都使用的uber捆绑包,并检查您提到的元素是否存在,这些元素可以很容易地封装在函数中。这意味着用户将为他/她可能从未访问过的页面加载脚本代码。

  3. 两者的结合:在每个页面上使用两个捆绑包,一个包含所有(或大多数(页面使用的所有通用脚本,另一个包含每页脚本。

你选择哪一个完全取决于你。需要考虑的是项目中页面间导航的程度、捆绑包的总体大小、或多或少使用的带宽和缓存空间,以及可能还有一些我没有想过列出的事情。:-(

最新更新