2016-05-30 11 views
1

Ich versuche, das IncludeReplace-Plugin für Grunt zu verwenden. Ich versuche es für globals Eigenschaft zu geben, Werte durch einen JSON holen Sie den Code unten verwenden:Make Globale Objekte in Grunt

grunt.registerTask('fetchProperties', 'Fetches the properties.json file', function() { 
    properties = grunt.file.readJSON('properties.json'); 
    grunt.log.writeln(['Properties file loaded']); 
}); 

Nun, wenn ich properties.var_a tun es den Wert von var_a korrekt zurückgibt. So habe ich dies:

grunt.registerTask('fetchProperties', 'Fetches the properties.json file', function() { 
    properties = grunt.file.readJSON('properties.json'); 
    grunt.task.run('includereplace'); 
}) 

Hier ist meine includereplace Aufgabe:

includereplace: { 
     dist: { 
      options: { 
       globals: { 
        VAR_A: properties.var_a, 
        VAR_B: properties.var_b 
       }, 
      }, 
      files: [{ 
       src: '../myFiles/path/to/some/file/main.txt', 
       dest: '../myOtherFiles/path/to/some/file/mainrep.txt' 
      }] 
     } 
    } 

Jetzt sind undefined die Werte durch die includereplace Aufgabe ersetzt. Wie kann dieses Problem behoben werden? Ich habe auch versucht, die Variablen mit grunt.config zu setzen, aber die Sache ist, ich habe eine JSON-Datei, die beim Laden ein Objekt und nicht einen einzelnen Wert zurückgeben wird. Wie setze ich ein globales Objekt, das von allen ausgeführten Tasks zur Einstellung ihrer Parameter verwendet werden kann? Ich lade die JSON-Datei am Anfang der Grunt-Datei. Es ist die erste Zeile in meinem module.exports = function(grunt) { ...

Antwort

1

Das hat funktioniert!

grunt.initConfig({ 
    properties: grunt.file.readJSON('properties.json'), 
    includereplace: { 
    dist: { 
     options: { 
      globals: { 
       VAR_A: '<%= properties.var_a %>', 
       VAR_B: '<%= properties.var_b %>' 
      }, 
     }, 
     files: [{ 
      src: '../myFiles/path/to/some/file/main.txt', 
      dest: '../myOtherFiles/path/to/some/file/mainrep.txt' 
     }] 
    } 
    } 
}); 

Verwendet https://stackoverflow.com/a/16792592/2459789 für diese.

Verwandte Themen