我正在使用 webpack 使用该target属性来捆绑服务器资产。
这会产生一个可用的客户端包和一个可用的服务器,它运行良好。然而,似乎即使对于服务器代码,webpack 也将所有内容捆绑在node_modules. 我试图用来webpack-node-externals解决这个问题,见下图:
module.exports = [
{
name: "server code, output to ./server",
entry: "./servertest.js",
output: {
filename: "./server/index.js"
},
target: "node",
externals: [
nodeExternals({
includeClientPackages: false
})
]
},
{
name: "client side, output to ./public",
entry: "./app.js",
output: {
filename: "./dist/app.js"
}
}
]
Run Code Online (Sandbox Code Playgroud)
然而,这不起作用,因为它的默认行为是从捆绑中排除所有 node_modules,从而使服务器无用。有一个白名单选项,我已经包含了express,这是我的小测试用例的唯一依赖项。它不会在 express 上失败,但是它在 express, 的依赖上失败了merge-descriptors。当然,如果我将合并描述符添加到白名单中,则尝试启动服务器将因 express 的另一个依赖项而失败。我当然不能将每个依赖项和子依赖项(等等)添加到这个白名单数组中。
require在target: 'node'构建过程中 webpack 捆绑了给定ment 的所有依赖项?"没有理由不将webpack用于node/io.js代码......"
使用Webpack捆绑服务器端代码的目的是什么?
使用Webpack + Node和Node本身有什么优势吗?
../../../../噩梦?还有很多其他解决方案,包括babel-plugin-module-resolver.如果您正在构建一个带有Node(Express)后端和React前端的Web应用程序 - 具体来说,是使用Create React App构建的前端,它是否预先配置了Webpack?
我已经更新了我的问题,以包括促使我提出这个问题的参考文献,但它仍然被搁置.为什么是这样?