从浏览捆绑包中删除重复的模块

Remove duplicate module from browserify bundle

本文关键字:模块 删除 包中 浏览      更新时间:2023-09-26

我有一个browserfy bundle,我们称之为core.js,它包含一个require('../module-a');语句。core.js包含在我网站的每个页面上。

我有一个单独的捆绑包,它是特定于页面的,我们称之为page.js。在page.js中,有一个require('../../some/folder/module-a');语句。

截至目前,module-acore.jspage.js中都是重复的。我想告诉browserify,当生成page.js时,首先在core.js捆绑包中搜索module-a,如果存在,则使用该捆绑包中的module-a

我不希望生成包含core.jspage.js共享代码的common.js捆绑包。我希望core.js保持不变,并简单地减少page.js。我也不想手动告诉page.js捆绑包core.js已经包含module-a,我有太多的模块,这是不可行的。我需要用程序来完成它。

这可能吗?

实际上,您无法通过browserfy配置来实现这一点,因为browserfy不知道它之前创建的捆绑包,也无法连接来自两个单独编译的捆绑包的模块。

可能,最简单的解决方案是在编译page.js之前让page.js模块知道是否包含core.js。这取决于与browserify一起使用哪个工具来编译捆绑包。

所以,正如我所说,如果不围绕捆绑包编写一些逻辑,你就无法随心所欲。