2016-08-31 33 views
0

我正在寻找一种方法将我的sass编译成2个不同的输出以供开发和生产。我已经能够通过采用以下方法来实现这个工作正常https://coderwall.com/p/gqqfgw/sass-compass-compile-two-different-files-for-development-and-production-environment-take-2如何获得sass来编译css的开发和生产版本?

我遇到的问题是,我需要的输出内容是不同的。对于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文件中使用变量的阅读,但无法找到我应该如何去实现我所需要的。

任何意见或在正确的直接点将不胜感激。

谢谢。

回答

0

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

dev.scss

$output = 'dev' 
@include your files 

prod.scss

$output = 'prod' 
@include your files 

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

+0

谢谢,就是我在找的东西。如果我想要我的生产版本被压缩,但我的开发版本不需要通过config.rb文件完成? – eh21

+0

以及我不知道你在用什么,但看看minify和uglify –

+0

编译我指南针观看与config.rb文件的文件夹,我设置output_style设置为压缩为我的缩小版 – eh21

0

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

+0

谢谢,这适用于我。如果我想要我的生产版本被压缩,但我的开发版本不会通过config.rb文件完成? – eh21

相关问题