如何解决gruntjs文件中的路径?

时间:2014-07-31 15:07:47

标签: templates gruntjs

我有以下文件结构:

application
|-  deploy
|----- Gruntfile.js
|-- package.json
|-- public
|----- js
|-- views
|----- templates

在我的Gruntfile.js文件中,我正在尝试编译jade模板,如下所示:

module.exports = function(grunt) {

var templatizer = require('templatizer');

grunt.loadNpmTasks('grunt-execute');

// Project configuration.
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    execute: {
        templatizer: {
            options: {
                templatesDir: 'need path for ../views/templates',       // ?
                outputFile: 'need path for ../public/js/templates.js'   // ?
            },

            call: function(grunt, options) {
                templatizer(options.templatesDir, options.outputFile);
                grunt.log.writeln('Templatizer done');
            }
        }
    }
});

// Default task(s).
grunt.registerTask('default', ['execute:templatizer']);

};

我不明白如何解决templatesDir和outputFile选项的修补程序?

1 个答案:

答案 0 :(得分:0)

您可以更轻松地使用templatizer-plugin

module.exports = function(grunt) {

  grunt.loadNpmTasks('grunt-templatizer');

  // Project configuration.
  grunt.initConfig({

    pkg: grunt.file.readJSON('package.json'),

    templatizer: {
      files: {
        'public/js/templates.js': ['views/templates/*'] // paths are relative from your gruntfile
      }
    }

  }
});

// Default task(s).
grunt.registerTask('default', ['templatizer']);
无论你做什么,误用"几乎总是错误的。 execute-plugin。搜索grunt-plugins,如果不存在插件,请创建一个using grunt-init gruntplugin。这真的很容易。

修改

我不喜欢在deploy-dir中使用gruntfile。在我看来,它应该始终位于项目的根目录中。如果你想把它留在deploy目录中,你可以在那里运行吗?然后你的配置看起来像这样(记住:路径是相对于你的gruntfile的!):

templatizer: {
   files: {
     '../public/js/templates.js': ['../views/templates/*']
   }
}