#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. Спасибо за глубокое понимание того, как это сделать