我正在寻找一种方法将我的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文件中使用变量的一些内容,但无法了解我应该如何实现我的需求。
非常感谢任何直接的建议或要点。
感谢。
答案 0 :(得分:0)
为什么不制作2个将被编译的专用输出文件。
dev.scss
$output = 'dev'
@include your files
prod.scss
$output = 'prod'
@include your files
所以你只需要切换生成的文件。
答案 1 :(得分:0)
这样做的一种方法是为开发和生产创建一个单独的sass文件。在新文件中,您可以将$output
的值分别设置为dev
和prod
,然后导入包含下一行中定义的所有css的sass文件。生成的输出css将使用相应文件中定义的变量值。