
[英]How to overwrite Bootstrap 4.5 SASS variables and use them in SCSS files
[英]Why does SvelteKit require to include dependent scss files each time instead requiring them once, globally?
我正在尝试使用 SvelteKit 和 Bootstrap 构建一个项目。
在+layout.css
文件中包含所有 Bootstrap 相关的 scss 文件后,我从我的custom.scss
样式文件中收到一条错误消息:
[sass] Undefined mixin.
53 │ ┌ @include media-breakpoint-up(sm) {
54 │ │ ...
65 │ └ }
╵
src/lib/css/custom.scss 53:9 root stylesheet
这是我的+layout.svelte
文件:
<script>
//scss
import 'bootstrap/scss/bootstrap.scss'
import 'bootstrap-icons/font/bootstrap-icons.scss'
import '$lib/css/custom.scss'
//js
import 'bootstrap/dist/js/bootstrap.bundle'
</script>
<slot></slot>
我已经设法确定我可以通过在我的custom.css
文件中导入bootstrap/scss/mixins
来解决这个问题。
为什么我必须在我的custom.scss
文件中再次包含@import "bootstrap/scss/mixins"
行才能使其工作,因为该文件已经包含在bootstrap/scss/bootstrap.scss
中,它包含在+layout.svelte
文件?
PS - 我已经为 SvelteKit 启用了vitePreprocess 。
我以前使用过 Laravel Mix,它按预期工作。 有人可以向我解释为什么 SvelteKit 中有这种行为吗?
script
中的导入是 styles 的孤立包含,它们不“通信”。 由于@include
是预处理中必须发生的事情,因此单独导入各种文件将不起作用。
您应该能够创建一个内部导入文件的bundle.scss
,这样它们应该一起处理。
否则,可以选择不在<script>
中导入,而是在<style lang="scss">
中使用 SASS/CSS 导入机制。 (您可能需要将所有内容放在一个:global
块中以防止范围界定。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.