gpt4 book ai didi

node.js - 使用 webpack 解析 node_modules 路径以启动跨多个兄弟项目的文件夹

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:28 25 4
gpt4 key购买 nike

我有几个同级文件夹/存储库:

| - A
| |- node_modules
| |- app
|
| - B
| |- node_modules
| |- app
|
| - C
| |- node_modules
| |- app

具有交叉依赖性,因此 A 可能需要 B 中的脚本。

// A/app/script.js
var bDependency = require('B/app/script.js')


// B/app/script.js
var jquery = require('jquery')

在这种情况下,当 webpack 去打包它时,它会在 A 之前将 jquery 解析为 Bnode_modules 的。这也会导致 webpack bundle.js 中的重复模块,因为它可能会解析到其他同级 node_modules 文件夹。 (即使在 new webpack.optimize.DedupePlugin() 之后也是如此)

因此我必须在 Bnpm install 一个包,即使它是 A 需要它并且已经安装了库。

我已经在使用 resolve、root 和 modulesDirectories webpack 选项来进行一些友好的路径解析。

我想做的是首先将任何 node_modules 路径解析为启动文件夹。有没有一种方法可以使用 webpack 的路径解析工具来实现这一点,或者我应该重组应用程序以共享一个 node_modules?

最佳答案

我发现最优雅的解决方案是为指向启动文件夹的 node_modules 目录的 resolve 对象定义一个 fallback 属性,在 webpack.config.js 中

resolve: {
// Check the initiating folder's node_modules
fallback: [
path.join(__dirname, "node_modules")
]
}

您可以在这里阅读更多相关信息:https://webpack.github.io/docs/configuration.html#resolve-fallback

关于node.js - 使用 webpack 解析 node_modules 路径以启动跨多个兄弟项目的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35800010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com