一尘不染

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

node.js

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

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

当我通过 更少 运行目标时grunt less,它运行没有错误,但没有将less文件编译为css文件。

Running "less:files" (less) task

Done, without errors.

我也通过node 安装了 lessc 软件包。做的lessc <source> <dest>很好。

目前,我已将 files选项 直接指向一个目录,该目录包含一个要测试的文件。即使我将整个文件名写入 files选项 ,也不会发生任何事情…

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

我已安装以下版本:

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

BR,我的麦克斯


阅读 220

收藏
2020-07-07

共1个答案

一尘不染

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

如果您希望将.less 1-1转换为.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"
    }
}
2020-07-07