【问题标题】:Bootstrap 4 Webpack Sass functions not workingBootstrap 4 Webpack Sass功能不起作用
【发布时间】:2019-06-09 03:26:39
【问题描述】:

在使用 Webpack 和 Bootstrap 4 mixins 和函数时遇到问题。

sass|css 加载器:

{
    test: /\.(sa|sc|c)ss$/,
    use: [
        // fallback to style-loader in development
        // which creates style nodes from JS strings (IE: imports)
        process.env.NODE_ENV === 'development' ? 'style-loader' : MiniCssExtractPlugin.loader,
        {
            loader: 'css-loader',
            options: {
                sourceMap: true
            }
        },
        {
            loader: 'sass-loader',
            options: {
                sourceMap: true,
                includePaths: ['node_modules']
            }
        }
    ]
}

导入:

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/print";
@import "bootstrap/scss/reboot";
@import "bootstrap/scss/type";
@import "bootstrap/scss/images";
@import "bootstrap/scss/code";
@import "bootstrap/scss/grid";
@import "bootstrap/scss/tables";
@import "bootstrap/scss/forms";
@import "bootstrap/scss/buttons";
@import "bootstrap/scss/transitions";
@import "bootstrap/scss/dropdown";
@import "bootstrap/scss/button-group";
@import "bootstrap/scss/input-group";
@import "bootstrap/scss/custom-forms";
@import "bootstrap/scss/nav";
@import "bootstrap/scss/navbar";
@import "bootstrap/scss/card";
@import "bootstrap/scss/breadcrumb";
@import "bootstrap/scss/pagination";
@import "bootstrap/scss/badge";
@import "bootstrap/scss/jumbotron";
@import "bootstrap/scss/alert";
@import "bootstrap/scss/progress";
@import "bootstrap/scss/media";
@import "bootstrap/scss/list-group";
@import "bootstrap/scss/close";
@import "bootstrap/scss/modal";
@import "bootstrap/scss/tooltip";
@import "bootstrap/scss/popover";
@import "bootstrap/scss/carousel";
@import "bootstrap/scss/utilities";

一切似乎都很好,除了 mixins 和函数。

例如,color: color("purple"); 可以正常工作,并放置正确的颜色,但是简单的 <span className="badge badge-green ml-2">badge here</span> 会加载徽章的基本样式,但不会加载绿色的颜色变体。

没有任何错误,所以我不确定发生了什么。

【问题讨论】:

    标签: webpack sass bootstrap-4 node-sass


    【解决方案1】:

    您是否在 $theme-colors 引导变量中定义了颜色变量“绿色”?

    默认只有以下选项(复制自bootstrap/_variables.scss):

    $theme-colors: () !default;
    // stylelint-disable-next-line scss/dollar-variable-default
    $theme-colors: map-merge(
      (
        "primary":    $primary,
        "secondary":  $secondary,
        "success":    $success,
        "info":       $info,
        "warning":    $warning,
        "danger":     $danger,
        "light":      $light,
        "dark":       $dark
      ),
      $theme-colors
    );
    

    $theme-color 变量被所有组件用于这样的颜色修饰符(以徽章组件为例从bootstrap/_badge.scss 复制):

    @each $color, $value in $theme-colors {
      .badge-#{$color} {
        @include badge-variant($value);
      }
    }
    

    因此,如果您想使用颜色变体“绿色”,您必须首先在 $theme-colors 变量中注册它(无论您在哪里覆盖默认引导变量):

    $theme-colors: (
      "green": #00ff00
    );
    

    更多信息可以在徽章组件的文档 (https://getbootstrap.com/docs/4.1/components/badge/) 和引导程序本身的主题颜色文档 (https://getbootstrap.com/docs/4.1/getting-started/theming/#theme-colors) 中找到。

    【讨论】:

    • 是的,就是这样!我没有深入研究文档!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2019-04-22
    • 2018-08-06
    相关资源
    最近更新 更多