Angular 9升级至10时执行ng build出现styles.less栈溢出错误
解决方案:Angular 10 升级后 Less 编译栈溢出问题
针对你在 Angular 9 升级到 10 后执行 ng build 遇到的 Maximum call stack size exceeded 错误(出现在 Bootstrap 的 grid.less 中 .make-grid(xs) 调用),可以尝试以下几种解决办法:
锁定 less-loader 兼容版本
Angular 10 默认升级了构建链中的依赖,包括less-loader的版本。高版本less-loader对 Less 递归函数的处理逻辑变化,导致旧版 Bootstrap Less 的.make-grid递归触发栈溢出。你可以在package.json中指定less-loader为 5.x 版本:"devDependencies": { "less-loader": "^5.0.0" }执行
npm install重新安装依赖后,再尝试构建。替换 Bootstrap 的 Less 版本为预编译 CSS
如果不需要自定义 Bootstrap 的 Less 变量,直接改用预编译的 Bootstrap CSS 文件。在styles.less中替换导入语句:// 替换之前的 @import "bootstrap/less/bootstrap.less" @import "bootstrap/dist/css/bootstrap.min.css";跳过 Less 编译过程,避免递归函数引发的问题。
检查是否存在重复导入
排查styles.less及其他导入的 Less 文件,确认是否重复导入了 Bootstrap 的 grid 模块或整个 Bootstrap Less 文件。重复导入会导致.make-grid函数被多次递归调用,触发栈溢出。
内容的提问来源于stack exchange,提问作者roditoo
相关产品推荐
相关产品推荐

