所以我有这个grunt-contrib-jade设置正常工作
当我自己在(导出的)Gruntfile中包含我的数据时,一切都很好:
module.exports = {
website: {
options: {
data: {
pageTitle: "This is my website",
greeting: "Hello world",
},
debug: true,
pretty: true
},
files: {
'build/website/index.html': 'src/jade/template/index.jade'
}
}
};
它将我的index.jade与我的数据值合并,我的index.html输出就是应该的样子。但是,当我想加载外部文件来定义我的数据时,它就出错了:
options: {
data: function (dest, src) {
// Return an object of data to pass to templates
return require('src/jade/template/locals.json');
},
debug: true,
pretty: true
},
files: {
'build/website/index.html': 'src/jade/template/index.jade'
}
需求路径有效,我对其进行了三重检查。它与index.jade位于同一文件夹中。但是我仍然遇到这个错误:
Running "jade:website" (jade) task
>> Jade failed to compile "src/jade/template/index.jade".
>> Error: Cannot find module './locals.json'
>> Destination not written because compiled files were empty.
我尝试了一切,但我只是没有看到它。
答案 0 :(得分:1)
本地模块需要添加' ./'当你require
时。
data: function (dest, src) {
// Return an object of data to pass to templates
return require('./src/jade/template/locals.json');
}
会奏效。你没有对这个功能做任何事情(至少还没有),所以这也可能是
data: require('./src/jade/template/locals.json')
甚至
data: grunt.file.readJSON('./src/jade/template/locals.json')
。