Я хочу создать какую-то задачу, где я могу читать пользовательские конфиги из разных json-файлов и заменять содержимое в моих файлах с кофейным источником содержимым json-файлов и конкатенировать исходные файлы ,Задача grunt с пользовательским настройкой json
мой Projekt-установки:
./src
- file1.coffee
- file2.coffee
./config
/папка1
- development.json (содержит: { "ключ": "value1"}
- production.json (содержит: { "ключ": "значение2"}
/folder2
- development.json (содержит: { "ключ": "value3"}
- production.json (содержит: { "ключ": «V alue4" }
./dist
- package-name.coffee
- -пакетов name.js
file1.coffee содержит
myVar = '@@putkeyhere'
version = '@@version'
...
У меня есть задача хрюкать CONCAT работает для себя настроен и работает:
concat: {
dist: {
src: ['<banner>', './src/*.coffee'],
dest: './dist/<%= pkg.name %>.coffee'
}
},
я получил черновую замены задачи (замена версии и так далее уже работает, когда я запускаю «хрюкать заменить» на уже сцепленных файлов)
replace: {
dist: {
options: {
variables: {
'created': '<%= grunt.template.today("dd.mm.yyyy HH:MM:ss") %>',
'environment': 'dev',
'version': '<%= pkg.version %>'
},
prefix: '@@'
},
files: {
'dist/': ['./dist/<%= pkg.name %>.coffee']
}
}
},
и, наконец, кофе составить задачу:
coffee: {
compile: {
files: {
'./dist/<%= pkg.name %>.js': ['./dist/*.coffee']
}
}
}
все задачи работают для себя, но мне нужно прочитать из файлов config-json, которые заменяют содержимое в конкатенированные файлы кофе, а затем скомпилировать все файлы в js.
я пытался что-то подобное, но не чувствует права:
grunt.registerTask('mytask', '', function (env) {
env = env || 'development';
if (env !== 'development' && env !== 'production') {
grunt.log.error("'" + env + "' is not valid environment");
return false;
}
var c = grunt.option('c');
if(c) {
// if i run the task "grunt mytask:production -c folder2 it should read
// ./config/folder2/development.json
// that works that way, but i dont think this is a good solution
var config = grunt.file.readJSON('./config/' + c + '/' + env + '.json')
} else {
// here i need to iterate for all folders in ./config, and do stuff for all
}
});
является Multitask вариант? но как читать динамически из файлов config.json?
оцените вашу помощь!