2017-08-25 1 views
0

J'utilise le flux de travail automatisé avec gulp pour construire html et css à partir de modèles de nunjucks basé sur ceci: https://github.com/uxmoon/automate-workflowEn utilisant includeData Tag avec nunjucks Templating

Et je veux maintenant inclure des données JSON stockées dans des fichiers pour y accéder à mon Composants. Il y a un plugin appelé "includeData" qui devrait faire l'affaire: https://github.com/VincentLeung/nunjucks-includeData

J'ai essayé d'inclure ceci dans le processus, mais cela ne fonctionne pas.

Ce que je l'ai fait jusqu'à présent:

J'ai ajouté un fichier appelé « nunjucks-includedata.js » dans le dossier des tâches où les tâches de Gulp sont situés.

var nunjucks = require('nunjucks'), 
    includeData = require('nunjucks-includeData'), 
    gulpnunjucks = require('gulp-nunjucks'); 

var templates = 'app/templates'; //Set this as the folder that contains your nunjuck files 

var env = new nunjucks.Environment(new nunjucks.FileSystemLoader(templates)); 
includeData.install(env); 
gulp.task('pages', function() { 
    // Gets .html files. see file layout at bottom 
    return gulp.src([templates + '/*.html', templates + '/**/*.html']) 
     // Renders template with nunjucks and marked 
     .pipe(gulpnunjucks.compile("", {env: env})) 
     // output files in dist folder 
     .pipe(gulp.dest(dist)) 
}); 

Mais cela ne fonctionne pas. Je reçois une erreur lors du démarrage de gulp, que la balise "includeData" n'est pas reconnue.

Il y a bien sûr quelque chose qui manque mais je n'ai aucune idée de quoi il s'agit et je n'ai rien trouvé d'utile quand je cherchais sur internet.

J'espère que quelqu'un utilise déjà le plugin includeData avec succès dans son processus de construction et peut me dire ce que je dois changer dans la configuration.

Merci beaucoup d'avance pour toute aide!

meilleures salutations, Thomas

Répondre

0

Au début, vous devez vérifier que l'extension installé

// test.json 
{"name": "Bill"} 

// your-app.js 
... 
includeData.install(env); 
var res = res.renderString('{% includeData "test.json" %} {{name}}'); 
console.log(res); // Bill 

Cette extension ne fonctionne pas sur 5.x nœud, car l'assignation déstructurante besoin (voir node_modules\nunjucks-includeData\index.js, ligne 78). Peut-être, vous devez mettre à jour votre noeud.