【发布时间】:2021-06-07 13:13:21
【问题描述】:
我正在使用 webpack-cli 4.7.0。我有一个库,我想为两种不同的环境编译,一个用于 web,一个用于 node。根据this documentation,这很容易实现,我从 webpack.config.js 导出两个单独的有效 webpack 配置。
所以我创建了两个有效的 webpack 配置,一个用于服务器,一个用于客户端。 Webpack 按指定输出两个单独的文件,但坚持使用“self”而不是“this”,即使我在配置中指定了output.globalObject: "this"。如果我理解official documentation,则不应该是这样。
webpack.config.js
const path = require( "path" );
// const webpack = require( "webpack" );
const serverConfig = {
mode: "production",
entry: "./src/Check4.js",
target: "node",
output: {
path: path.resolve( __dirname, "dist" ),
filename: "Check4.node.js",
globalObject: "this",
library : {
type: "commonjs2",
export: "default"
}
}
};
const clientConfig = {
mode: "production",
entry: "./src/Check4.web.js",
target: "web",
output: {
path: path.resolve( __dirname, "dist" ),
filename: "Check4.js",
globalObject: "this",
library : {
name: "Check4",
type: "window",
}
}
};
module.exports = [serverConfig, clientConfig];
作为参考,这里是 webpack 输出的前几个字节,表明它使用的是全局“self”而不是“this”
(()=>{var e={172:e=>{self,e.exports=(()=>{"use strict";var e={502:...
【问题讨论】:
标签: node.js webpack compilation global-object