我正在使用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插件,并且可以告诉我在配置中需要更改的内容。
非常感谢您提前寻求帮助!
最好的问候, 托马斯
答案 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行)。也许,您必须更新您的节点。