我正在Sails.js中构建一个应用程序,我想将一些jade模板编译成javascript函数,以便从客户端使用。我找到了一些文章解释如何做到这一点,但当我尝试实施他们的步骤时,他们似乎不适合我
我正在尝试编译位于App / Views / Client中的文件,并将已编译的javascript文件放入App / .tmp / public / templates
我的grunt任务在App / tasks / config中,并且基于sails.js附带的coffeescript grunt任务。我的咕噜声任务看起来像这样
module.exports = function(grunt) {
grunt.config.set('jade', {
dev: {
templates:{
options: {
pretty: true,
client: true,
namespace: 'Templates'
},
files: [{
expand: true,
cwd: 'views/client/',
src: ['**/*.jade'],
dest: '.tmp/public/templates/',
ext: '.js'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-jade');
};
我已将它添加到sails.js附带的compileAssets.js grunt任务中,我可以看到它在运行sails lift命令时运行。
运行时会报告创建的0个文件,这表明我的路径存在问题。但是我已经根据与sails.js中的其他grunt任务相同的工作文件夹来定义它们。我在路径上尝试了很多变化,包括在它们的开头放置./,但似乎都没有。
任何人都可以帮忙解释我的grunt文件有什么问题吗?或者如何让它将正在查看的文件夹输出到控制台,以便我可以判断出我的路径是否正确?
答案 0 :(得分:1)
您的配置对象太深了一层。
dev
已经是任务的目标,Grunt将开始在那里寻找files
属性。 templates
被悄悄忽略了。
所以配置对象应如下所示:
dev: {
options: {
pretty: true,
client: true,
namespace: 'Templates'
},
files: [{
expand: true,
cwd: 'views/client/',
src: ['**/*.jade'],
dest: '.tmp/public/templates/',
ext: '.js'
}]
}