如何编写一个开发和生产版本的CSS?

时间:2016-08-31 08:46:27

标签: css sass compass-sass

我正在寻找一种方法将我的sass编译成两个不同的输出用于开发和生产。我已经能够通过采用以下方法实现这一目标,该方法工作正常https://coderwall.com/p/gqqfgw/sass-compass-compile-two-different-files-for-development-and-production-environment-take-2

我遇到的问题是我需要输出的内容不同。对于CMS,我使用css中引用的任何文件(图像,字体等)需要转换为标签(CMS独有),而对于我的开发版本,我需要图像的本地路径。

我已经能够通过在sass文件中使用变量来切换它们:

@if $output == dev {
        background: #FFFFFF url('../images/this-is-my-local-image.jpg') 0 0 repeat-x;
    } @else {
        background: #FFFFFF url('<IMG type="media" id="216155" formatter="path/*"/>') 0 0 repeat-x;
    }

但是我需要一种能够在两种变体中输出文件的方法,而无需每次都进入并更改$ output变量。

我已经完成了有关在config.rb文件中使用变量的一些内容,但无法了解我应该如何实现我的需求。

非常感谢任何直接的建议或要点。

感谢。

2 个答案:

答案 0 :(得分:0)

为什么不制作2个将被编译的专用输出文件。

dev.scss

$output = 'dev'
@include your files

prod.scss

$output = 'prod'
@include your files

所以你只需要切换生成的文件。

答案 1 :(得分:0)

这样做的一种方法是为开发和生产创建一个单独的sass文件。在新文件中,您可以将$output的值分别设置为devprod,然后导入包含下一行中定义的所有css的sass文件。生成的输出css将使用相应文件中定义的变量值。