Webpack 5无法解析'timers'模块问题求解(已尝试部分方案)
解决Webpack 5中'timers'模块找不到的问题
你已经尝试了安装timers-browserify和设置resolve.fallback: { "timers": false },这里还有几个可行的解决方向:
升级xml2js到最新版本
旧版xml2js可能依赖Node.js的timers核心模块,新版本大概率已经适配了浏览器/Webpack 5环境。执行命令更新:npm update xml2js # 或者直接安装最新版 npm install xml2js@latest针对Angular项目(ngx-admin)调整Webpack配置
ngx-admin基于Angular,直接修改根目录的webpack.config.js可能不生效,需要用自定义Webpack配置工具:- 安装依赖:
npm install @angular-builders/custom-webpack --save-dev - 在项目根目录创建
custom-webpack.config.js,添加配置:module.exports = { resolve: { fallback: { "timers": require.resolve("timers-browserify") // 或者设置为false:"timers": false } } }; - 修改
angular.json,将构建器替换为@angular-builders/custom-webpack:browser,并指定自定义配置文件:"architect": { "build": { "builder": "@angular-builders/custom-webpack:browser", "options": { "customWebpackConfig": { "path": "./custom-webpack.config.js" }, // ...其他原有配置 } } }
- 安装依赖:
使用Node核心模块Polyfill插件
用node-polyfill-webpack-plugin一次性处理所有Node核心模块的Polyfill需求,避免逐个配置:- 安装插件:
npm install node-polyfill-webpack-plugin --save-dev - 在Webpack配置文件中引入并使用:
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin'); module.exports = { // ...其他配置 plugins: [ new NodePolyfillPlugin() ] };
- 安装插件:
排查依赖树,定位间接引用源
有些情况下,可能是其他依赖包间接引入了旧版xml2js或依赖timers的模块。执行命令查看依赖树:npm ls timers根据输出找到对应的依赖包,尝试升级该包或者通过
npm dedupe来整理依赖版本。
内容的提问来源于stack exchange,提问作者Victoria
相关产品推荐
相关产品推荐

