编译用更少的文件咕噜-的contrib少都不行(Compile less files with gr

2019-07-20 14:07发布

我使用咕噜建立我的web项目。 我安装grunt-contrib-less包UND添加一个任务,我grunt.initConfig({..});

less : {
            options: {
                paths: ['js/base']
            },
            files: {
                'js/base/*.css' : 'js/base/*.less'
            }
        }

当我通过运行目标 grunt less ,运行没有错误,但较少的文件不编译成一个CSS文件。

Running "less:files" (less) task

Done, without errors.

我已经安装了通过节点的lessc包了。 做lessc <source> <dest>工作正常。

目前,我已经指出与文件选项可以直接到一个目录包含一个文件少的测试。 即使我写了整个文件名到文件选项 ,它发生什么......

后来我要扫描整个JS目录,并编译所有新修改* .LESS文件。

我已经安装了以下版本:

grunt-cli v0.1.6
grunt v0.4.0
node v0.8.7
npm 1.1.49

BR,mybecks

Answer 1:

水珠图案js/base/*.css不匹配任何文件,因此没有目的地。 通常情况下,像这样的任务需要多个输入组合成一个单一的输出。 另外,请记住, less就是多任务 ,并把files作为一个孩子less是不是做你的期望。 (这是将它视为目标,而不是一个源/目标地图)

如果你想要一个1-1变换.LESS到的CSS,你可以使用动态扩展 。 (您也可以手动定义每个源/目标对,但谁愿意这样做呢?)

你的情况:

less: {
    options: {
        paths: ['js/base']
    },
    // target name
    src: {
        // no need for files, the config below should work
        expand: true,
        cwd:    "js/base",
        src:    "*.less",
        ext:    ".css"
    }
}


Answer 2:

我用Anthonies解决方案,但STIL有一个错误

Warning: Object true has no method indexOf

如果我改变了顺序把expand true为第二它给我的错误

Unable to read "less" file

其中,“少”是第一个项目,在我的列表中的值。

我解决它通过改变文件到一个这样的数组:

less: {
    options: {

            paths: ["js/base"]
        },
        files: [{
            expand: true,
            cwd: "js/base",
            src: ["**/*.less"],
            dest: "js/base",
            ext: ".css"
        }]
},

我用"grunt-contrib-less" : "^0.11.0"



Answer 3:

这对我的作品,但修改,以反映这样的情景:

less: {
    options: {
        paths: ["js/base"]
    },
    files: {
        expand: true,
        cwd: "js/base",
        src: ["**/*.less"],
        dest: "js/base",
        ext: ".css"
    }
},


文章来源: Compile less files with grunt-contrib-less won't work