【问题标题】:How to recursively compile less/sass files with grunt如何使用 grunt 递归编译 less/sass 文件
【发布时间】:2016-02-14 00:20:33
【问题描述】:

我有一个文件结构复杂的项目,其中的模块有自己的 css/less/sass 文件夹。

我希望 grunt 观察所有这些并将它们编译为目标文件,方法是将最后一个 lass/sass 文件夹替换为 css。编译文件示例

root/less/style.less -> root/css/style.css

或

root/modules/mymodule/sass/file.sass -> root/modules/mymodule/css/file.css

我现在的 gruntfile 是:

    less: {
        development: {
            options: {
                paths: ["**/*"]
            },
            //files: {"css/main.css": "less/main.less"},
            files: [
                {
                    expand: true,
                    cwd: "**/*",
                    src: ["**/*.less"],
                    dest: "",
                    ext: ".css"
                }
            ]
        }
        // ,
        // production: {
        //     options: {
        //         paths: ["assets/css"],
        //         cleancss: true
        //     },
        //     files: {"path/to/result.css": "path/to/source.less"}
        // }
    },
    watch: {
      styles: {
        files: ['less/**/*.less'], // which files to watch
        tasks: ['less'],
        options: {
          nospawn: true
        }
      }
    }
});

但它不起作用。

【问题讨论】:

    标签: css sass gruntjs less


    【解决方案1】:

    我认为是您的启动 (cwd) 和目标 (dest) 路径不正确。试试这个:

    less: {
        development: {            
            files: [
                {
                    expand: true,
                    cwd: "root", // The startup directory
                    src: ["**/*.less"],
                    dest: "root", // Destination
                    ext: ".css"
                }
            ]
        }
    },
    

    【讨论】:

    • 它没有按照我想要的方式工作。我的项目在项目的不同文件夹中有很多较少的文件夹,其中包含 .less 文件。我希望每个这样的'less'文件夹都有同级'css'文件夹,其中保留的文件夹结构与它的同级'less'文件相同。您的代码在与 .less 文件相同的文件夹中创建 .css 文件,并且它还尝试编译所有文件 - 包括由其他文件导入的文件。
    猜你喜欢
    • 2014-05-04
    • 2014-02-02
    • 1970-01-01
    • 2013-11-18
    • 2011-05-19
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    相关资源
    最近更新 更多