使用grunt-contrib-less编译较少的文件将不起作用

myb*_*cks 14 less node.js gruntjs

我正在使用Grunt来构建我的Web项目.我安装了grunt-contrib-less包并为我添加了一个任务grunt.initConfig({..});

less : {
            options: {
                paths: ['js/base']
            },
            files: {
                'js/base/*.css' : 'js/base/*.less'
            }
        }
Run Code Online (Sandbox Code Playgroud)

当我运行目标较少的通过时grunt less,它运行没有错误,但不会将较少的文件编译为css文件.

Running "less:files" (less) task

Done, without errors.
Run Code Online (Sandbox Code Playgroud)

我也通过节点安装了lessc包.做得lessc <source> <dest>很好.

目前我已将文件选项直接指向一个目录,其中包含少量文件用于测试.即使我将整个文件名写入文件选项,它也没有发生......

后来我想扫描整个js目录并编译所有新修改的*.less文件.

我安装了以下版本:

grunt-cli v0.1.6
grunt v0.4.0
node v0.8.7
npm 1.1.49
Run Code Online (Sandbox Code Playgroud)

BR,mybecks

Dom*_*nes 45

glob模式js/base/*.css与任何文件都不匹配,因此没有目标.通常,像这样的任务期望多个输入组合成单个输出.另外,请记住,这less是一项多任务,并且files作为一个孩子,less并没有做你期望的事情.(它将它视为目标,而不是src/dest地图)

如果您希望将.less转换为.css,则可以使用动态扩展.(或者您可以手动定义每个src/dest对,但是谁想要这样做?)

在你的情况下:

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"
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 对于grunt-contrib-less v0.10.0,配置应该是:```less:{options:{...},files:{...}}```.属性名称应为`files`,而不是`src`. (4认同)

Mic*_*iel 9

我使用了Anthonies解决方案,但stil有错误

Warning: Object true has no method indexOf
Run Code Online (Sandbox Code Playgroud)

如果我把订单改为expand true第二次就给了我错误

Unable to read "less" file
Run Code Online (Sandbox Code Playgroud)

其中"less"是我列表中第一项的值.

我通过将文件更改为如下数组来解决它:

less: {
    options: {

            paths: ["js/base"]
        },
        files: [{
            expand: true,
            cwd: "js/base",
            src: ["**/*.less"],
            dest: "js/base",
            ext: ".css"
        }]
},
Run Code Online (Sandbox Code Playgroud)

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


小智 6

这对我有用,但经过修改以反映这种情况:

less: {
    options: {
        paths: ["js/base"]
    },
    files: {
        expand: true,
        cwd: "js/base",
        src: ["**/*.less"],
        dest: "js/base",
        ext: ".css"
    }
},
Run Code Online (Sandbox Code Playgroud)