【发布时间】:2021-07-11 16:27:19
【问题描述】:
不确定导入的最佳方式是什么,但不推荐使用“@import”,而应使用 @use。我有一个要包含在 style.scss 中的网格文件。
_grid.scss
.main-content {
display:grid;
/* Set up grid stuff */
}
header{
grid-area: header;
}
我需要导入到这里。 样式.scss
body{
/* More code here */
}
最终编译出来的代码应该是这样的:
.main-content {
display:grid;
/* Set up grid stuff */
}
header{
grid-area: header;
}
body{
/* More code here */
}
我知道这是错误的,但这是我尝试过的:
@use 'grid' as *;
$main-content
使用 mixin 怎么样?
_grid.scss
@mixin grid {
/* Wrap all the code here from _grid.scss */
.main-content {
display:grid;
/* Set up grid stuff */
}
header{
grid-area: header;
}
}
style.css
@use 'grid' as *;
@include $grid
body{
}
【问题讨论】:
-
@import未被弃用。@use仅适用于dart-sass。只需使用@import -
@import已经或将在几年内被贬低和删除。不要让讨论措辞......这确实是语言开发人员宣布的意图。也许社区能够阻止它......但实际上没有关于阻止它的讨论:sass-lang.com/documentation/at-rules/import + sass-lang.com/documentation/at-rules/import(实际时间线:2022 年 10 月 1 日) -
@Brebber 是的,我现在才读完所有内容。我想我将不得不使用 import 直到我其他时间弄清楚。有趣的是,迁移工具所做的只是将“@use grid”添加到其中,但更改中没有任何反应。当我执行
sass-migrator module --dry-run --verbose ./style.scss |grep grid时,没有插入任何来自网格的内容