如何在grunt中为less插件指定相对路径

时间:2015-03-24 15:35:23

标签: gruntjs less

我为成为一个完整的咕噜新手而道歉。我安装了node.js,我安装了grunt,并且能够运行" grunt less"在目标较少的gruntfile.js上。它"运行",但它没有做任何事情。

我的.less文件位于源存储库中:C:\ Workspace \ dev,位于以下目录中: C:\工作区\ dev的\腹板\ RP \内容\ P1 \少\ p1.less C:\工作区\ dev的\腹板\ RP \内容\ P2 \少\ p2.less

我的gruntfile.js文件位于C:\ Tools \ Grunt(至少在我学习的时候),所以我需要运行" grunt less"命令来自C:\ Tools \ Grunt。

一些问题: 1.我怎样才能在"任何地方"而不是gruntfile.js住的地方?我试图将编译较少的文件作为构建的一部分进行集成。

  1. 如何指定"主目录"对于.less文件,所以我不必指定source和dest的完整路径?在我的例子中,主目录将是C:\ Workspace \ dev \ Webs \ RP \ Content,而我的较少文件:将是这样的: " rp1 / less / rp1.css":" rp1 / less / rp1.less" (有几个需要编译)。
  2. 提前致谢。

    module.exports = function(grunt){
    
        require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
        grunt.initConfig({
    
            less: {
                options: {
                    paths: ["/c/Workspace/dev/Webs/RP/Content"]
                },
                files: {
                    "rp1/less/rp1.css": "rp1/less/rp1.less",
                    "rp1/less/ie9.css": "rp1/less/ie9.less",
                    "rp2/less/rp2.css": "rp2/less/rp2.less",
                    "rp3/less/rp3.css": "rp3/less/rp3.less",
                    "rp4/less/rp4.css": "rp4/less/rp4.less",
                    "rp4/less/ie9.css": "rp4/less/ie9.less",
                    "rp5/less/rp5.css": "rp5/less/rp5.less",
                    "rp5/less/ie9.css": "rp5/less/ie9.less"
                }
            }
        });
        grunt.loadNpmTasks('grunt-contrib-less');
        grunt.registerTask('default', ['less']);
    
    };
    

1 个答案:

答案 0 :(得分:1)

您应该阅读how to use the files object in Grunt。基本上,您需要通配符模式,而不必单独指定每个文件。我觉得这样的事情可能有用:

files: [
  {
    expand: true,
    src: ['**/*.less'],
  },
]

虽然没有测试过。您可能还需要一个'dest'属性(无论是空的还是只是'./'),如果它不够智能,无法自行解决。

如果你刚刚开始你的项目,还要考虑使用gulp而不是grunt,我发现它将'src'和'dest'配置分开,而不是将它们组合成'files'对象更自然。另外我和less sass一起工作,并且发现后者非常优越(主要是因为mixin库可用,但它本身也是一种更强大的语言),并且它很容易移动从一个到另一个。