我正在开发一个包含大约 10K 行 JavaScript 代码的大型 Web 应用程序(不考虑第三方库)。为了加快页面加载速度,已决定自动将每个脚本文件连接成一个大型脚本,该脚本在第一次访问应用程序时在客户端上加载(和缓存)。这带来了一个问题,因为每个页面都有自己的脚本,其中包含(基本上)相同功能所需的所有 JavaScript。
现在,如果在其中一个脚本中发生错误,则很难判断该错误来自何处,因为所有内容都被滚动到添加到每个页面的同一脚本中,而不是script
像以前那样在每个页面中使用显式声明.
是否有解决此问题的 JavaScript 模式?我正在考虑类似于 AngularJS 模块的东西,可以绑定到 Web 应用程序页面内的某些容器。
但是,我想要一个简单的自定义解决方案,因为我们时间紧迫,而且我们没有时间在我们的应用程序中实现框架。它应该仅将某些脚本(模块)应用于它们各自的页面,并且应该允许开发人员明确声明某些脚本所依赖的任何其他脚本(模块)。
此外,实现一个异常处理系统来通知用户(例如在 Firebug 控制台中)异常源自哪个模块(如果页面的模块依赖于其他模块)会很棒。
问问题
63 次
1 回答
0
解决您的问题的一个可能方法是使用 js 源映射。许多 concat/minify/uglify 工具直接支持此功能,而大多数现代浏览器都能够解释它们。
您仍然会提供包含所有代码的单个 JS 文件(即使这很可能不是处理如此大量代码的最佳主意 - 很大程度上取决于您的整体架构)
但是您的浏览器开发工具现在能够向您显示错误/控制台输出/等的原始文件名和行号。
您很可能不会在生产中提供源映射文件。
进入 js 源映射的一个好点是这个 wiki。
于 2017-05-18T15:55:26.337 回答