每个文件夹的Grunt.js和文件夹迭代+选项

时间:2015-05-24 18:35:28

标签: javascript gruntjs

我在使用grunt构建一个使用我的文件夹结构来构建数据的任务时,是否可能。

我想从文件夹结构中构建一个网站。

例如我有:

- data
-- folder_n
--- options.json
--- webpagetext.txt
--- additional.html

然后在文件夹结构(folder_n/{variable_as_friendly_url}.html

中生成我的网页

是否可以使用咕噜声?我阅读了大部分文档,但没有发现是否可能。

编辑:我如何在PHP中看到它

<?php
/*
    Basic project structure

    templates/
    - template_1.php
    - template_2.php
    - template_3.php
    datafeed/
    - subpage_1/
    -- header_image.png
    -- webpagetext.txt
    -- options.json
    - subpage_2/
    -- header_image.png
    -- webpagetext.txt
    -- options.json
    - subpage_3/
    -- header_image.png
    -- webpagetext.txt
    -- options.json
    - subpage_n/
    -- header_image.png
    -- webpagetext.txt
    -- options.json

*/

// IN PHP it would look like.

foreach (glob('datafeed/*') as $dir){
    foreach(glob('templates/*') as $tpl){
        constructpage($dir, $tpl);
    }
}

function constructpage($dir, $tpl) {
    $options = json_decode($dir.'options.json');
    $output_html_file_name = 'output/'.basename($dir) . '/' . basename($dir) . '.html';
    /*
        Logic that would copy, assign vars etc for template in $tpl.
    */

}

但是grunt是我的选择,因为:我想学习它,它有一些非常酷的工具。

1 个答案:

答案 0 :(得分:0)

您需要的是 Yeoman生成器/子生成器

它是什么:

  

根据Yeoman website,生成器基本上是一个插件,可以使用yo命令运行以构建完整的项目或有用的部分

可以做什么

您可以从命令行运行Yeoman命令; Yeoman能够对其创建的代码进行修改,并使其适应您提供的参数或文件中存在的参数。

文档

有关Yeoman脚手架的更多信息:

Yeoman official tutorial

Call sub-generators with user-supplied arguments

FOR(STILL)MORE AUTOMATION

此外,虽然我仍然只是部分理解你真正想要达到的目的,但是你可能希望通过使用像这样的Grunt手表来触发Yeoman创建文件,当存在某个文件目录时:

watch: {
  scripts: {
    files: ['**/*.file-directory-to-detect'],
    tasks: ['myCustomYeomanScript'],
  },
}

grunt-shell是这样的:

grunt.initConfig({
shell: {
    myCustomYeomanScript: {
        command: 'yo createMyFiles'
    }
}

});