webpack < 5 used to include polyfills for node.js core modules by default
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
- install 'os-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "os": false }
yarn add ode-polyfill-webpack-plugin
craco.config.js如下
//对webpack配置别名
//对webpack配置别名
const path = require('path')
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
module.exports = {
// webpack 配置
webpack: {
// 配置别名
alias: {
// 约定:使用 @ 表示 src 文件所在路径
'@': path.resolve(__dirname, './src'),
},
configure: (webpackConfig) => {
if (webpackConfig.plugins) webpackConfig.plugins.push(new NodePolyfillPlugin({
excludeAliases: ['console']
}))
else webpackConfig.plugins = [new NodePolyfillPlugin({
excludeAliases: ['console']
})]
return webpackConfig
}
}
}