混合browserify和webpack外部

我们正在提升庞大代码库中的部分代码。 我们正在引入一个使用webpack构建的模块。 为了避免代码重复,我们使用了webpack的外部选项。

当我们开始将我们的模块集成到当前正在使用browserify的主代码库中时,我们遇到了一个问题,即共享依赖包含两次并导致问题。

有没有办法让webpack使用打包版本的依赖关系? 那么在最终的browserified bundle中,我们只需要包含一个依赖项?

在我看来,这似乎是不可能的,如果是的话,我会推动我们的代码库的其余部分移到webpack上(它已经在进行中)。

我到目前为止唯一提出的解决方案是让webpack模块也导出共享依赖项,然后让主应用程序使用该导出,但这并不理想。

我已确保两个node_modules文件夹中的依赖项都处于相同版本,并且仍然有2个实例。

我需要能够告诉Browserify只解析我的应用程序node_modules,或者告诉它从上到下解析,即先查看顶层node_modules,这可能吗?

我曾尝试在使用cli时设置NODE_PATH选项以避免影响。

**更新**

所以问题是,当Browserify在webpack包中命中require()语句时,它会从本地node_modules文件夹中解析出来,所以我们最终得到了2个依赖关系实例。 我可以通过在应用程序require()或webpacks external选项中使用相对路径并确保它们使用相同的文件来解决此问题。


所以看起来这个问题是由于我使用了符号链接(使用npm链接),因为我正在处理这个模块。 似乎当Browserify解析symlinked模块中的require时,它解析为它自己的node_modules,并且我们最终得到2个副本。

当我正常安装模块时,它一切正常,所以这是好的,因为模块的其他使用者应该没有问题。 令人讨厌的是,它的行为如此,但我只需要确保在模块旁边开发时,我在主应用中指向相同的依赖关系。

所以我在主应用程序中的require语句(而符号链接)看起来像这样:

require('./node_modules/my-module/node_modules/shared-dependency/index.js');

如果没有符号链接,我可以照常进行。

链接地址: http://www.djcxy.com/p/32899.html

上一篇: Mixing browserify and webpack externals

下一篇: How do I export my browserified modules for requiring in the browser?