【问题标题】:How to get sass to compile a dev and production version of css?如何让 sass 编译开发和生产版本的 css?
【发布时间】:2016-08-31 16:56:55
【问题描述】:

我正在寻找一种方法来将我的 sass 编译成 2 个不同的输出以用于开发和生产。我已经能够通过采用以下工作正常的方法来实现这一点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 文件中使用变量的信息,但不知道应该如何实现我需要的。

任何建议或正确直接的观点将不胜感激。

谢谢。

【问题讨论】:

    标签: css sass compass-sass


    【解决方案1】:

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

    dev.scss

    $output = 'dev'
    @include your files
    

    prod.scss

    $output = 'prod'
    @include your files
    

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

    【讨论】:

    • 谢谢,正是我想要的。如果我希望我的生产版本被压缩但我的开发版本不是必须通过 config.rb 文件来完成吗?
    • 好吧,我不知道你在用什么,但看看 minify 和 uglify
    • 为了编译,我使用 config.rb 文件查看文件夹,并将 output_style 设置为压缩后的压缩版本
    • 好吧,我只是有 gulp 的经验,所以我不能在这里真正帮助你:(
    【解决方案2】:

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

    【讨论】:

    • 谢谢,这对我有用。如果我希望我的生产版本被压缩但我的开发版本不是必须通过 config.rb 文件来完成吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多