我观看了以下Google Apps Office 视频并了解了如何使用 browserify 使用 node CommonJS 打包系统将您的 JS 打包到一个文件中。我喜欢这个想法,因为它还添加了许多移植到浏览器的节点库,并且可以处理 CoffeeScript。
视频没有涵盖的一件事是如何制作一个具有多个视图的 Chrome 应用程序仍然以DRY方式使用 browserify。让我解释。通常,您的 browserify 命令采用一系列 JS 文件(设计为模块)并将其连接成带有一些包装糖的单个 JS 文件。很高兴您从内容页面、背景页面或弹出页面中引用该 JS 文件。但是,如果您的应用程序同时具有背景页面和你会在每个弹出页面中包含相同的编译 JS 文件吗?这不会导致 chrome 加载脚本两次(在两个实例中)吗?如果是这样,那么解释一切只是为了得到你想要的部分似乎是一种浪费。或者 require()/exports 模式是否可以防止对特定上下文可能不需要的模块进行不必要的解释?
如果这不是最佳实践,应该如何打包模块,使每个页面都以干巴巴的方式获取所需的模块,而不必重复自己或每页有单独的 browserify 包?其他人是如何处理这个话题的?