繁体   English   中英

使用grunt将Jade模板编译为sails.js中的javascript函数

[英]Using grunt to compile jade templates to javascript functions in sails.js

我正在Sails.js中构建一个应用程序,我想将一些玉器模板编译为javascript函数以从客户端使用。 我发现一些文章解释了如何执行此操作,但是当我尝试执行他们的步骤时,它们似乎对我没有用

我正在尝试编译位于App / Views / Client中的文件,并将已编译的javascript文件放入App / .tmp / public / templates

我的grunt任务位于App / tasks / config中,并且基于sails.js附带的coffeescript grunt任务。 我的咕unt任务看起来像这样

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文件出了什么问题? 或者如何使其输出到控制台的文件夹,这样我就可以弄清楚我的路径是否正确?

您的配置对象太深了。 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'
  }]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM