如何将自定义 bootstrap 主题放入 Angular 12?
How to put custom bootstrap theme in Angular 12?
我有一个 angular 网站,其中 bootstrap 来自 npm 和 @ng-bootstrap/ng-bootstrap。我真的不喜欢默认主题。所以我在 bootswatch 上找到了一些主题。我下载了“_variables.scss”和“_bootswatch.scss”。
在我的 style.css 中,我使用了以下代码:
@import '~bootstrap/scss/bootstrap';
在我的 angular.json 中,我放置了以下样式配置:
...
"styles": [
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"src/styles.scss",
"src/_variables.scss",
"src/_bootswatch.scss"
],
..
.
然后我得到以下错误:
./src/_bootswatch.scss.webpack[javascript/auto]!=!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/_bootswatch.scss - Error: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Undefined variable.
╷
15 │ font-family: $headings-font-family;
│ ^^^^^^^^^^^^^^^^^^^^^
╵
src/_bootswatch.scss 15:16 root stylesheet
./src/_bootswatch.scss - Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
HookWebpackError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Undefined variable.
非常感谢您的帮助!
您正在导入 Bootstrap 一次,而其他 SCSS 没有做任何事情。
在您的 src 根目录中创建一个新文件(我喜欢创建一个名为 'styles' 的新文件夹以保持整洁,所以将其他 scss 文件也放在那里):
src/styles/styles.scss
在此新文件中,按相同顺序添加导入:
@import "_variables.scss" (the first one takes precedance)
@import '~bootstrap/scss/bootstrap';
@import "_bootswatch.scss"
你的 angular.json
应该只有你的 scss
因为所有的都被编译:
"styles": [
"src/styles.scss",
],
就是这样。另请注意,我喜欢创建一个新文件 _bootstrap.scss
,而不是从 node_modules
导入文件,因此我可以从 Bootstrap 中删除我不关心的组件,例如轮播。
我有一个 angular 网站,其中 bootstrap 来自 npm 和 @ng-bootstrap/ng-bootstrap。我真的不喜欢默认主题。所以我在 bootswatch 上找到了一些主题。我下载了“_variables.scss”和“_bootswatch.scss”。
在我的 style.css 中,我使用了以下代码:
@import '~bootstrap/scss/bootstrap';
在我的 angular.json 中,我放置了以下样式配置:
...
"styles": [
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"src/styles.scss",
"src/_variables.scss",
"src/_bootswatch.scss"
],
..
.
然后我得到以下错误:
./src/_bootswatch.scss.webpack[javascript/auto]!=!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/_bootswatch.scss - Error: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Undefined variable.
╷
15 │ font-family: $headings-font-family;
│ ^^^^^^^^^^^^^^^^^^^^^
╵
src/_bootswatch.scss 15:16 root stylesheet
./src/_bootswatch.scss - Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
HookWebpackError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Undefined variable.
非常感谢您的帮助!
您正在导入 Bootstrap 一次,而其他 SCSS 没有做任何事情。
在您的 src 根目录中创建一个新文件(我喜欢创建一个名为 'styles' 的新文件夹以保持整洁,所以将其他 scss 文件也放在那里):
src/styles/styles.scss
在此新文件中,按相同顺序添加导入:
@import "_variables.scss" (the first one takes precedance)
@import '~bootstrap/scss/bootstrap';
@import "_bootswatch.scss"
你的 angular.json
应该只有你的 scss
因为所有的都被编译:
"styles": [
"src/styles.scss",
],
就是这样。另请注意,我喜欢创建一个新文件 _bootstrap.scss
,而不是从 node_modules
导入文件,因此我可以从 Bootstrap 中删除我不关心的组件,例如轮播。