我正在构建一个相当复杂的angular.js应用程序的基本轮廓。由于在浏览器中支持cjs模块,因此我这次选择browserify over require.js。但现在唯一让我难以理解的是browserify在同一个文件中捆绑每个'require'调用。因此,对于例如,如果我有模块:使用带角度的browserify
模块 - (需要angular.js和jQuery)
模块 - B(需要angular.js和jQuery)
什么browserify需要做的是,它将在MODULE-A和MODULE-B中捆绑angular和jQuery,这将首先增加代码库的大小。当我尝试与require.js进行比较时,显然需要仅加载angular.js一次。那么这是在性能和灵活性之间的一个已知折衷?
它是如何设想的?请对此作一些阐述。
我不明白的是,browserify如何能够确定angular.js是否已经与其他模块捆绑在一起,然后不会将其包含在其他模块中 – beNerd
如果它真的被粘贴到t他另一个模块的代码(这打破了模块的全部目的),那么它就不会知道。但是如果它通过require()包含,那么它可以跟踪所有模块和版本的 ,这样可以避免重复。 (这可能不是它正在做的事情,但你明白了,如果你想确切知道它在做什么,你可以阅读源代码。) – Trott