报错内容:
报错翻译:
突破性变化:webpack<5用于包含节点的polyfill。默认情况下是js核心模块。现在已经不是这样了。验证是否需要此模块,并为其配置polyfill。
如果要包含polyfill,则需要:添加备用解决方案。回退:{“querystring”:require.resolve(“querytring-es3”)}'
-安装“querystring-es3”
如果不想包含polyfill,可以使用这样的空模块:resolve。回退:{“querystring”:false}
报错原因:
webpack5中移除了nodejs核心模块的polyfill自动引入,所以需要手动引入。
解决办法:
方法1.将import qs from 'querystring‘改成import qs from 'qs'
方法2.
①npm install node-polyfill-webpack-plugin
②在config.js引入
// 头部引入
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')
configureWebpack: (config) => {
const plugins = []
plugins.push(new NodePolyfillPlugin())
}
// 或者
configureWebpack: {
plugins: [new NodePolyfillPlugin()],
}