使用includeData标记和nunjucks模板化

时间:2017-08-25 07:24:20

标签: json gulp nunjucks

我正在使用gulp的自动化工作流程来构建基于此的nunjucks模板的html和css:https://github.com/uxmoon/automate-workflow

我现在想要包含存储在文件中的json数据,以便在我的组件中访问它们。有一个名为" includeData"这应该够了吧: https://github.com/VincentLeung/nunjucks-includeData

我尝试将其包含在流程中,但它不起作用。

到目前为止我做了什么:

我添加了一个名为" nunjucks-includedata.js"进入gulp任务所在的任务文件夹。

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))
});

但它不起作用。我在开始gulp时遇到错误,标签" includeData"不被承认。

当然有些东西不见了,但我不知道它是什么,我在搜索互联网时也没有找到任何有用的东西。

希望有人已经在他的构建过程中成功使用了includeData插件,并且可以告诉我在配置中需要更改的内容。

非常感谢您提前寻求帮助!

最好的问候, 托马斯

1 个答案:

答案 0 :(得分:0)

首先,您必须检查已安装的扩展程序

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

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

此扩展程序不适用于Node 5.x,因为需要进行解构分配(请参阅node_modules\nunjucks-includeData\index.js,第78行)。也许,您必须更新您的节点。