>

npm grunt-mustache-render ( https : //www.npmjs)를 사용하고 있습니다. .com/package/grunt-mustache-render )를 사용하여 HTML 파일을 생성하십시오. 1 json과 1 템플릿을 사용하여 HTML을 만들 수 있습니다. 이제 내가 시도하는 것은 하나의 템플릿과 여러 개의 json 파일을 기반으로 여러 HTML 파일을 만드는 것입니다. 모든 json을 하나씩 명시 적으로 지정하고 싶지 않습니다. 대신 모든 json 파일 경로, 템플릿 경로 및 dist 경로를 지정하여 json 파일 이름을 기반으로 HTML 파일을 생성하려고합니다.

여기서 나의 과격한 일이 있습니다 :

mustache_render: {
      json_data: {
        files: [
          {expand: true,
           src: 'content/*.json',
           template: 'templates/menu-content.mustache',
           dest: 'publish/'}
        ]
      }
    }

하지만 HTML 파일을 생성하지 않습니다. 대신 HTML 코드가 포함 된 여러 .json 파일을 만듭니다. 또한 파일을 게시하려는 위치가 아닌 publish/content/폴더에 파일을 만듭니다. 출력 결과는 다음과 같습니다.

Output publish/content/page-one.json:
>> 2-key object into templates/menu-content.mustache from content/page-one.json
Output publish/content/page-three.json:
>> 5-key object into templates/menu-content.mustache from content/page-three.json
Output publish/content/page-two.json:
>> 5-key object into templates/menu-content.mustache from content/page-two.json

내가 뭘 잘못하고 있니? grunt-mustache-render로 시도하는 작업을 수행하는 것이 가능합니까?

TIA.


  • 답변 # 1

    이는 mustache_render 에 대한 구성을 동적으로 생성하여 달성 할 수 있습니다.   .json 를 기반으로 한 작업  파일.

    Gruntfile.js 를 구성 해보십시오  다음과 같이 :

    Gruntfile.js

    module.exports = function (grunt) {
      'use strict';
      grunt.initConfig({
        mustache_render: {} // Intentionally empty, will be auto generated.
      });
      /**
       * Helper function auto generates the configuration object for 
       * the mustache_render Task based on the .json files found.
       */
      function generateHtml() {
        var config = {},
          pathsToJson = 'content/*.json';
        grunt.file.expand(pathsToJson).forEach(function (filePath, index) {
          // .html filename based on .json filename.
          var htmlFileName = filePath.split('/').pop().split('.')[0] + '.html';
          config[index] = {
            files : [{
              data: filePath,
              template: 'templates/menu-content.mustache',
              dest: 'publish/' + htmlFileName
            }]
          }
        });
        // Add the generated config object to mustache_render Task then run it.
        grunt.config('mustache_render', config);
        grunt.task.run(['mustache_render']);
      }
      grunt.loadNpmTasks('grunt-mustache-render');
      grunt.registerTask('buildHtml', generateHtml);
      grunt.registerTask('default', ['buildHtml']);
    };
    
    

관련 자료

  • 이전 java - DecimalFormat 및 Mathpow
  • 다음 tensorflow - LSTM 세포 훈련 가능