You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline构建Angular应用失败:Sass变量未定义报错

解决Angular Jenkins构建中Bootstrap $gutters变量未定义的问题

错误详情

- Generating browser application bundles...
✔ Browser application bundle generation complete.

Error: ./src/styles/main.scss
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Undefined variable.
    ╷
114 │       @each $key, $value in $gutters {
    │                             ^^^^^^^^
    ╵
  node_modules/bootstrap/scss/mixins/_grid.scss 114:29       @content
  node_modules/bootstrap/scss/mixins/_breakpoints.scss 68:5  media-breakpoint-up()
  node_modules/bootstrap/scss/mixins/_grid.scss 72:5         make-grid-columns()
  node_modules/bootstrap/scss/_grid.scss 32:3                @import
  src/styles/vendors/_bootstrap.scss 7:9                     @import
  src/styles/vendors/_vendors.scss 4:9                       @import
  src/styles/main.scss 7:9                                   root stylesheet

解决方案

  • 修正Bootstrap导入顺序
    错误根源是导入_grid.scss时,依赖的$gutters变量未被定义。Bootstrap的核心变量都在_variables.scss中,按需导入组件时必须先导入变量文件,再导入目标组件。修改src/styles/vendors/_bootstrap.scss:

    // 先导入Bootstrap核心变量
    @import "../../../node_modules/bootstrap/scss/variables";
    // 再导入需要的组件(如grid)
    @import "../../../node_modules/bootstrap/scss/grid";
    

    若你自定义了Bootstrap变量,需将自定义变量文件放在Bootstrap变量文件之前导入,实现默认值覆盖。

  • 保证依赖导入完整性
    手动拆分导入Bootstrap组件时,必须严格遵循依赖链:先导入variables、mixins,再导入其他功能组件。嫌麻烦的话直接导入完整Bootstrap主文件,避免依赖缺失:

    @import "../../../node_modules/bootstrap/scss/bootstrap";
    
  • 同步Jenkins与本地依赖环境
    本地构建正常但Jenkins失败,大概率是依赖版本不一致。在Jenkins Pipeline中添加以下步骤:

    rm -rf node_modules package-lock.json
    npm ci
    

    npm ci会严格按照package-lock.json安装依赖,确保Jenkins环境与本地完全一致。

  • 检查Sass相关依赖兼容性
    确认sass-loader、sass(dart-sass)版本与Angular版本匹配。Angular 12+不再支持node-sass,必须使用sass包,可执行以下命令调整:

    npm uninstall node-sass
    npm install sass --save-dev
    

内容的提问来源于stack exchange,提问作者Mahesh Eu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 13:06:24