在Rails资产管道中是否保留SCSS变量? [英] Persisting SCSS variables in rails asset pipeline?

查看:66
本文介绍了在Rails资产管道中是否保留SCSS变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在升级具有许多SCSS样式表的Rails应用程序以使用资产管道,并且需要为每个文件包括一些全局变量和mixins.

I'm upgrading a rails app with lots of SCSS stylesheets to use the asset pipeline, and need to include some global variables and mixins for each file.

在每个文件的顶部添加几个@import指令不是很干,所以我想做这样的事情:

Adding several @import directives at the top of every file isn't very DRY, so I'd like to do something like this:

# application.css
/*
*= require variables
*= require mixins
*= require_tree .
*/

这当然是行不通的,因为变量不会在文件中持久保存.有人知道如何实现这一目标吗?

This doesn't work of course, because the variables are not persisted across files. Anyone know how to achieve this?

推荐答案

默认清单语法的功能不足以为您提供有用的Sass功能,例如共享变量,mixins等.相反,您应该:

The default manifest syntax isn't powerful enough to give you useful Sass features like shared variables, mixins, etc. Instead, you should:

  1. 将application.css重命名为application.scss(或在Rails 4或更早版本中重命名为application.css.scss)
  2. 而不是使用

  1. Rename application.css to application.scss (or application.css.scss in Rails 4 or earlier)
  2. Instead of using the

/*
 *= require variables
 *= require mixins
 *= require_tree .
 */

废话,您现在应该使用

@import "variables";
@import "mixins";
@import "blah"; // import each SCSS file in your project like this.

这将确保您在整个项目中都能充分利用变量和混合变量,并在Sass允许的情况下保持DRY身份.

This will ensure you have full benefit of your variables and mixins throughout your project, and you are kept as DRY as Sass allows.

这篇关于在Rails资产管道中是否保留SCSS变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆