我正在使用大量SCSS样式表升级rails应用程序以使用资产管道,并且需要为每个文件包含一些全局变量和mixin。
在每个文件的顶部添加几个@import
指令不是很干,所以我想做这样的事情:
# application.css
/*
*= require variables
*= require mixins
*= require_tree .
*/
这当然不起作用,因为变量不会跨文件持久化。有谁知道如何实现这个目标?
答案 0 :(得分:36)
默认的清单语法不够强大,无法为您提供有用的Sass功能,如共享变量,mixins等。相反,您应该:
而不是使用
/*
*= require variables
*= require mixins
*= require_tree .
*/
废话,你现在应该使用
@import "variables";
@import "mixins";
@import "blah"; // import each SCSS file in your project like this.
这将确保您在整个项目中充分利用您的变量和混合物,并且您可以像Sass一样保持干燥状态。
答案 1 :(得分:6)
从每个Scss或Sass文件中导入必要的文件似乎对我有用。例如,我有一个colors.scss文件,其中包含一些这样的常量:
$black: #222;
我在application.css清单中需要它以及其他一些文件:
/*
*= require colors
*= require buttons
*/
在我的buttons.css.scss文件中,我只是这样做是为了避免错误:
@import "colors";
答案 2 :(得分:2)
似乎不可能。结束时使用@import 'includes/all';
预先添加每个文件,并包含includes/all.css.scss
中的所有其他内容。
答案 3 :(得分:0)
使用@import替换require并删除任何= require
,即使您认为自己已将其注释掉。