2014-07-03 4 views
0

J'utilise grunt-contrib-jade et je veux utiliser pkg.name et pkg.version pour construire mon nom de fichier css. Je n'arrive pas à faire fonctionner ça et j'espère que quelqu'un pourra m'aider à ce sujet. Voici ce que j'ai:Passer les options Grunt Jade au fichier

partie de la tâche de jade dans Gruntfile

compile: { 
    options: { 
     data : { 
      app : '<%= pkg.name %>', 
      version: '<%= pkg.version %>', 
     }, 
     pretty: true 
    } 

Puis dans mon dossier de jade J'ai:

link(href='_assets/css/<%= app %>-<%= version %>.css', rel='stylesheet', media='screen') 

Je ne sais pas comment ajouter les données de la compilation options de la tâche jade dans Gruntfile.

Nous vous remercions d'avance pour votre aide

Répondre

0

il semble que vous ne l'avez pas chargé package.json dans votre config Grunt ajouter le folloing à votre fichier grognement.

grunt.initConfig({ 
    pkg: require("./package.json"),// <---- add this line 
    compile: { 
     options: { 
      data : { 
       app : '<%= pkg.name %>', 
       version: '<%= pkg.version %>', 
      }, 
      pretty: true 
     } 
    } 
}); 

Personnellement, je préfère l'ajouter sous un méta-objet comme comme suit:

grunt.initConfig({ 
    meta{ 
     pkg: require("./package.json"),// <---- add this line 
    }, 
    compile: { 
     options: { 
      data : { 
       app : '<%= meta.pkg.name %>', // <-- notice i added meta 
       version: '<%= meta.pkg.version %>',// <-- notice added meta 
      }, 
      pretty: true 
     } 
    } 
}); 

vous pouvez aussi essayer ce qui suit:

var pkg = require("./package.json"); 

grunt.initConfig({ 
    compile: { 
     options: { 
      data : { 
       app : pkg.name, // <-- notice no quotes and no micro templating 
       version: pkg.version ,// <-- notice no quotes and no micro templating 
      }, 
      pretty: true 
     } 
    } 
}); 

cette aproche est pas aussi dynamique que la le précédent.

+0

Merci pour la compréhension approfondie de la façon de le faire – pertrai1