Bootstrap 4 个 Webpack Sass 函数不工作
Bootstrap 4 Webpack Sass functions not working
Webpack 和 Bootstrap 4 个混入和函数有问题。
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";
一切似乎都很好,除了混合和函数。
例如,color: color("purple");
工作得很好,并放置了正确的颜色,但是一个简单的 <span className="badge badge-green ml-2">badge here</span>
加载了徽章的基本样式,但没有加载绿色的颜色变体。
没有任何类型的错误,所以我不确定发生了什么。
您是否在 $theme-colors
bootstrap 变量中定义了颜色变量 "green"?
默认只有以下选项(从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);
}
}
所以如果你想使用颜色变体 "green" 你必须首先像这样在 $theme-colors
变量中注册它(无论你在哪里覆盖你的默认 bootstrap 变量):
$theme-colors: (
"green": #00ff00
);
可以在 bootstrap 本身的徽章组件 (https://getbootstrap.com/docs/4.1/components/badge/) and the documentation for theme colors (https://getbootstrap.com/docs/4.1/getting-started/theming/#theme-colors) 文档中找到更多信息。
Webpack 和 Bootstrap 4 个混入和函数有问题。
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";
一切似乎都很好,除了混合和函数。
例如,color: color("purple");
工作得很好,并放置了正确的颜色,但是一个简单的 <span className="badge badge-green ml-2">badge here</span>
加载了徽章的基本样式,但没有加载绿色的颜色变体。
没有任何类型的错误,所以我不确定发生了什么。
您是否在 $theme-colors
bootstrap 变量中定义了颜色变量 "green"?
默认只有以下选项(从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);
}
}
所以如果你想使用颜色变体 "green" 你必须首先像这样在 $theme-colors
变量中注册它(无论你在哪里覆盖你的默认 bootstrap 变量):
$theme-colors: (
"green": #00ff00
);
可以在 bootstrap 本身的徽章组件 (https://getbootstrap.com/docs/4.1/components/badge/) and the documentation for theme colors (https://getbootstrap.com/docs/4.1/getting-started/theming/#theme-colors) 文档中找到更多信息。