我是 Webpack 的新手,我正在尝试弄清楚 target 的实际用途。
在文档中,Webpack 说:
Node:编译以在类似 Node.js 的环境中使用(使用 Node.js require 加载块)
Web:编译以在类似浏览器的环境中使用(默认)
但它非常抽象,没有说明实际的区别是什么。
我注意到,如果在节点模式下使用 webpack-server 运行 webpack 配置文件,我会收到required is not Defined错误,而如果我只是使用 webpack 导出文件,然后独立运行文件,则它运行良好。该目标仅适用于 webpack 开发服务器吗?
module.exports = {
mode: "development",
target: "web", //node
devtool: "cheap-module-source-map",
entry: "./src/index",
output: {
path: path.resolve(__dirname, "build"),
publicPath: "/",
filename: "./bundle.js"
},
devServer: {
stats: "minimal",
overlay: true,
historyApiFallback: true,
disableHostCheck: true,
headers: { "Access-Control-Allow-Origin": "*" },
https: false
},
}
Run Code Online (Sandbox Code Playgroud)
我将目标属性设置为“web”并从后端运行它。与目标“节点”没有区别。它运行得很好。我看不到该属性的用途
Ari*_*rty 11
一个非常非常简单的例子是,
假设您正在创建一个React应用程序,它是一个客户端应用程序,将在浏览器上运行。您将目标定为web。(这是默认的)
如果我们说它是一个后端应用程序,例如 Express 应用程序,它不会在浏览器上运行,而是会从node自身启动。所以,你把目标定为node。它使用 Node.jsrequire加载块,而不触及任何内置模块,例如fs或path。
请参阅此处了解更多选项。另外,compare-webpack-target-bundles是测试和查看不同 webpack 目标的绝佳资源。也非常适合错误报告。
| 归档时间: |
|
| 查看次数: |
11153 次 |
| 最近记录: |