如何使Coffeeru文件可以访问Grunt配置变量?

时间:2014-03-27 12:32:17

标签: javascript node.js coffeescript gruntjs

这是我的Gruntfile:

'use strict';

module.exports = function (grunt) {

  require('load-grunt-tasks')(grunt);

  grunt.initConfig({

    site: grunt.file.readYAML('_config.yml'),

    coffee: {
      dist: {
        files: [{
          expand: true,
          cwd: "<%= site.src %>/assets/scripts",
          src: "{,*/}*.coffee",
          dest: "<%= site.tmp %>/assets/scripts",
          ext: ".js"
        }]
      }
    }

  });

  grunt.registerTask('default', ['coffee']);

}

我希望app/assets/scripts/globals.coffee看起来像这样:

jQuery ($) ->

  window.Site = "<%= site %>"

如何在CoffeeScript文件中插入site变量?

我尝试使用像grunt-contrib-handlebars和grunt-contrib-jst这样的插件,但那些生成JST文件,我认为这不是我想要的。

1 个答案:

答案 0 :(得分:1)

在我看来,Yaml和Assemble的数据组合可以满足您的需求。

http://assemble.io/docs/Data.html

FTA:

  

YAML示例

     

以下是YAML格式:

     

my-template.yml

     
title: Assemble 
author: Brian Woodward 
  
     

这个模板:

     

my-template.hbs

     

<h1>{{ title }}</h1>

您可以调整它以在设置window.Site = {{site.name}}的页面顶部插入脚本标记。