【发布时间】:2020-07-28 17:52:20
【问题描述】:
我正在将一个项目从 Webpack 3 升级到 Webpack 4。
目前我在 /my-proj/apps/myApp1/wrappers/clientWrapper.js 有一个文件
export default {
a: 1,
b: 2,
};
Webpack 客户端配置:
entry: {
index: [
'core-js/modules/es6.symbol',
'regenerator-runtime/runtime',
'core-js/fn/object/assign',
'core-js/fn/object/values',
'core-js/fn/object/entries',
'react-hot-loader/patch',
'webpack-hot-middleware/client?reload=true&path=http://0.0.0.0:3000/__webpack_hmr',
'/my-proj/apps/myApp1/wrappers/clientWrapper.js'
]
},
output: {
path: '/my-proj/build/client',
filename: '[name].js',
chunkFilename: '[name]-[chunkhash].js',
library: [ 'myApp1', '[name]' ],
libraryTarget: 'umd',
publicPath: 'http://0.0.0.0:3000/client/'
}
// ...
Webpack 服务器配置:
entry: {
index: [
'/my-proj/apps/myApp1/wrappers/serverWrapper.js'
]
},
output: {
path: '/my-proj/build/server',
filename: '[name].js',
chunkFilename: '[name]-[chunkhash].js',
library: [ 'myApp1', '[name]' ],
libraryTarget: 'commonjs2',
publicPath: 'http://0.0.0.0:3000/client/'
}
// ...
由于在这种情况下[name] 的值将是index,所以通过Webpack 的output.library,
以上配置可以帮助将对象添加到window.myApp1.index。
有关此方式的更多信息,您可以查看
客户端浏览器控制台现在将打印
window.myApp1.index.default = {
a: 1,
b: 2,
}
截图给window.myApp1:
但是,升级到 Webpack 4 后,使用相同的 Webpack entry 和 output 配置,无法将对象添加到 window.myApp1.index:
window.myApp1.index = undefined
有什么想法吗?谢谢
【问题讨论】:
-
如果您记录,window.myApp1 上存在哪些属性?
-
嗨@EvanMorrison 感谢您的帮助,它只有一个字段
index,我还在问题中添加了屏幕截图。
标签: javascript webpack webpack-4