【发布时间】:2017-04-12 16:01:36
【问题描述】:
我们正在提升庞大代码库的一部分。我们引入了一个使用 webpack 构建的模块。为了避免代码重复,我们使用了 webpacks externals 选项。
当我们开始将我们的模块集成到当前使用 browserify 的主代码库中时,我们遇到了一个问题,即共享依赖项被包含两次并导致问题。
有没有办法让 webpack 使用依赖的打包版本?那么在最终的 browserified 包中,我们只包含一次依赖项?
在我看来这可能是不可能的,如果是这样,我会推动将我们的代码库的其余部分移到 webpack 上(它已经在进行中)。
到目前为止,我想出的唯一解决方案是让 webpack 模块也导出共享依赖项,然后让主应用程序使用该导出,但这并不理想。
我已确保两个 node_modules 文件夹中的依赖项处于相同版本,并且我仍然获得 2 个实例。
我需要能够告诉 Browserify 只解析我的应用程序 node_modules,或者告诉它从上到下解析,即先查看顶层 node_modules,这可能吗?
我尝试在使用 cli 时将 NODE_PATH 选项设置为无效。
** 更新**
所以问题是,当 Browserify 在 webpack 包中遇到 require() 语句时,它会从本地 node_modules 文件夹中解析,所以我们最终得到了 2 个依赖项实例。我可以通过在应用程序 require() 或 webpacks 外部选项中使用相对路径并确保它们使用相同的文件来解决此问题。
【问题讨论】:
标签: javascript webpack browserify