Webpack5 process is not defined
webpack5升级后,出现了一个错误导致process没有定义,那如何解决这个问题呢?
看一下官网怎么说的
详情查看官方文档:
解决方案:
查了下官网
webpack 5 不再自动 polyfill Node.js 的核心模块,这意味着如果你在浏览器或类似的环境中运行的代码中使用它们,你必须从 NPM 中安装兼容的模块,并自己包含它们。以下是 webpack 在 webpack 5 之前使用过的 polyfill 包列表:
module.exports = {
//...
resolve: {
fallback: {
assert: require.resolve(assert),
buffer: require.resolve(buffer),
console: require.resolve(console-browserify),
constants: require.resolve(constants-browserify),
crypto: require.resolve(crypto-browserify),
domain: require.resolve(domain-browser),
events: require.resolve(events),
http: require.resolve(stream-http),
https: require.resolve(https-browserify),
os: require.resolve(os-browserify/browser),
path: require.resolve(path-browserify),
punycode: require.resolve(punycode),
process: require.resolve(process/browser),
querystring: require.resolve(querystring-es3),
stream: require.resolve(stream-browserify),
string_decoder: require.resolve(string_decoder),
sys: require.resolve(util),
timers: require.resolve(timers-browserify),
tty: require.resolve(tty-browserify),
url: require.resolve(url),
util: require.resolve(util),
vm: require.resolve(vm-browserify),
zlib: require.resolve(browserify-zlib),
},
},
};
1. 首先引入process,使用process/browser
npm i -D process
按照这个这个设置区设发现没有效果
2. 然后按如下设置,这个设置会自动加载模块,而不必在任何地方导入
new webpack.ProvidePlugin({
process: process/browser
}),
可能有些按照上面设置发现没有成功,换成如下代码
new webpack.ProvidePlugin({
process: require.resolve(process/browser)
}),
然后就成功的使用process了
