[英]How to pass parameters to grunt tasks defined in external files using load-grunt-config?
[英]Grunt server task config from external files
我正在運行Angular.js應用程序,並且所有任務管理都是通過grunt進行的,現在,我在實時重新加載中觀察着三個組件,bower_components,發票和用戶,最終它們的數量將會增加,因此我想知道是否有一種方法可以調用諸如components.json之類的外部文件並遍歷其n個成員。 這是我的代碼:
// The grunt server settings
connect: {
options: {
port: 9000,
hostname: 'localhost',
livereload: 35729
},
livereload: {
options: {
open: true,
middleware: function (connect) {
return [
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect().use(
'/invoices',
connect.static(invoicesAppPathConfig.root)
),
connect().use(
'/users',
connect.static(usersAppPathConfig.root)
),
connect.static(secureAppPathConfig.app)
];
}
}
},
dist: {
options: {
open: true,
base: '<%= main.dist %>'
}
}
}
我已經創建了component.json文件:
{"data":[
{
"resource":"/bower_components",
"config":"./bower_components"
},
{
"resource":"/invoices",
"config":"invoicesAppPathConfig.root"
},
{
"resource":"/users",
"config":"usersAppPathConfig.root"
}
]}
並在Gruntfile.js中創建了此變量,請記住我需要迭代數據的內容:
var components = require('./components.json');
var data = components.data;
現在我有一個問題,如何在代碼中做到這一點?
middleware: function (connect) {
return [
connect.static('.tmp'),
// Here comes the data iteration
connect.static(secureAppPathConfig.app)
];
}
提前致謝。
你當然可以:
grunt.initConfig({
components: grunt.file.readJSON('components.json'),
[...]
});
有關grunt.file
更多信息,請grunt.file
此處
您還可以要求它:
var components = require('./components.json');
創建下一個變量:
var components = require('./components.json');
var data = components.data;
var arrayComponents = [];
然后在livereload的選項中,迭代json數據並將其添加到arrayComponents
:
middleware: function (connect){
arrayComponents.push(connect.static('.tmp'));
// The modules to be watched are added
for(var i in data){
arrayComponents.push(connect().use(data[i].resource, connect.static(data[i].config)));
}
arrayComponents.push(connect.static(secureAppPathConfig.app));
return arrayComponents;
}
它有效,但也許不是最優雅的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.