Передача параметров Grunt Jade в файл

#javascript #gruntjs

#javascript #gruntjs

Вопрос:

Я использую grunt-contrib-jade и я хочу использовать pkg.name и pkg.version для создания моего имени файла css. Я не могу заставить это работать и надеюсь, что кто-нибудь сможет мне в этом помочь. Вот что у меня есть:

Часть задачи jade в Gruntfile

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

Затем в моем файле jade у меня есть:

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

Не знаю, как добавить данные из параметров компиляции из задачи jade в Gruntfile.

Заранее благодарю вас за вашу помощь

Ответ №1:

похоже, вы не загрузили package.json в свою конфигурацию Grunt, добавьте дополнение к вашему файлу grunt.

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

Я лично предпочитаю добавлять его в метаобъект следующим образом:

 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
       }
  }
});
  

вы также могли бы попробовать следующее:

 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
       }
  }
});
  

этот подход не такой динамичный, как предыдущий.

Комментарии:

1. Спасибо за глубокое понимание того, как это сделать