Возможно ли загрузить файл JSON из динамического источника? Я хочу сделать некоторые локализациизагрузить файл динамического JSON
grunt.file.readJSON('src/locales/<%= grunt.task.current.args[0] %>/i18n.json');
Более подробным пример Gruntfile выглядит следующим образом:
module.exports = function(grunt) {
var i18n = {
locales: ['en', 'fr', 'de', 'es'],
default: 'en',
replacements: function(locale){
var content = grunt.file.readJSON('src/locales/<%= grunt.task.current.args[0] %>/i18n.json');
var arr = [];
for(i in content){
var replacement = {
from: i,
to: content[i].value
};
arr.push(replacement);
}
return arr;
}
};
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
replace: {
build: {
src: ['local/en/**/*.html'], // source files array (supports minimatch)
dest: 'local/<%= grunt.task.current.args[0] %>/', // destination directory or file
replacements: i18n.replacements('<%= grunt.task.current.args[0] %>')
}
},
При регистрации задачи выглядит следующим образом:
grunt.registerTask('localise', function(){
var tasks = [];
for(i in i18n.locales){
if(i18n.locales[i] !== i18n.default){
tasks.push('replace:build:' + i18n.locales[i]);
}
}
grunt.task.run(tasks);
});
Все работает, как я надеялся за исключением загрузки JSON, чтобы фактически выполнить замены.
Я также попытался:
grunt.file.readJSON('src/locales/'+locale+'/i18n.json');
, который не работает, либо, оставив меня немного в тупик.
Любой, кто может помочь?
Благодаря
Это дает 'TypeError: Невозможно прочитать свойство '0' undefined'. Я думаю, что до тех пор, пока что-то называется, инициализация происходит до того, как выполняются задачи. – philsbury