首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过ANT任务+目录创建来切换到CSS

通过ANT任务+目录创建来切换到CSS
EN

Stack Overflow用户
提问于 2011-09-01 03:28:19
回答 1查看 6.5K关注 0票数 17

我最近开始在一个基于Java的项目中使用SASS [http://sass-lang.com/],并希望创建一个Ant任务:

  • 对于每个.scss文件+顶层scss目录中包含.scss文件的子目录:
    • 在CSS主目录中创建相应的目录
    • 编译.scss文件并将.css文件放在它的CSS目录下。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2012-01-23 00:42:00

rewinderOriginal answer

最终我花了一些时间来弄清楚,所以我想我应该把我是如何完成的发布出来。下面是我的设置:

build.properties

代码语言:javascript
复制
css.dir=./template/ver1-0/css/v3
sass.dir=./template/ver1-0/css/v3/scss

scss目录结构:

代码语言:javascript
复制
/template/ver1-0/css/v3/scss
    + widgets
        - widgettest.scss
        - widgettest2.scss
    + global
        - globaltest.scss
        - globaltest2.css
    - file1.scss
    - file2.scss
    - _partial1.scss
    - _partial2.scss

下面是Ant任务

代码语言:javascript
复制
<!-- scss to CSS -->
<!-- via: http://workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant-build.html -->
<target name="sass-compile-to-css">
    <echo message="Compiling scss files to css..." />
    <!-- create the css destination dir if it doesn't already exist -->
    <property name="css-dest" location="${css.dir}"/>
    <echo message="Creating directory at ${css.dir} [if it doesn't yet exist]" />
    <mkdir dir="${css-dest}" />
    <!-- create subdirs if necessary
        via: https://stackoverflow.com/questions/536511/how-to-create-directories-specified-by-a-mapper-in-ant -->
    <echo message="Creating css directories (and temporary .css files) for .scss to be compiled..." />
    <touch mkdirs="true">
        <fileset dir="${sass.dir}" includes="**/*.scss" excludes="**/_*" />
        <mapper type="glob" from="*.scss" to="${css.dir}/*.css"/>
    </touch>
    <echo message="Running sass executable against sass files and compiling to CSS directory [${css-dest}] " />
    <!-- run sass executable -->
    <apply executable="sass" dest="${css-dest}" verbose="true" force="true" failonerror="true">
        <arg value="--unix-newlines" />
        <srcfile />
        <targetfile />
        <fileset dir="${sass.dir}" includes="**/*.scss" excludes="**/_*" />
        <mapper type="glob" from="*.scss" to="*.css"/>
    </apply>
    <echo message="Done compiling scss files!" />
</target>

运行任务后,结果与预期一致:.scss文件被编译到创建它们时所在的相同路径。如果${css.dir}下还不存在文件父目录,则会相应地创建它。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7262342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档