2015-10-06 48 views
1

我正在Sails.js中构建一个应用程序,我想将一些jade模板编译为javascript函数以供客户端使用。我发现了一些文章解释如何做到这一点,但是当我尝试执行他们的步骤他们似乎并没有为我工作在sails.js中使用grunt将jade模板编译为javascript函数

我想编译位于应用程序/视图/客户端的文件,并把编译javascript文件导入App/.tmp/public/templates

我的咕噜任务在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'); 
}; 

我将它的compileAssets.js咕噜附带sails.js任务,我可以看到它正在运行,当我运行帆解除命令。

运行时报告创建了0个文件,这表明我的路径存在问题。不过,我已经根据与sails.js中的其他grunt任务相同的工作文件夹来定义它们。我尝试了一些路径上的变化,包括在开始时加入./,但似乎没有任何变化。

任何人都可以帮助解释我的grunt文件有什么问题吗?或者如何让它输出它正在查看的控制台的文件夹,所以我可以弄清楚我的路径是否正确?

回答

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' 
    }] 
} 
相关问题