如何使Grunt配置变量对CoffeeScript文件可访问

How to make Grunt configuration variables accessible to CoffeeScript files?

本文关键字:CoffeeScript 文件 访问 变量 何使 Grunt 配置      更新时间:2023-09-26

这是我的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文件我认为不是我想要的。

看起来像Yaml和汇编的数据的组合会做你需要的。

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

自由贸易协定:

YAML例子

下面是相同的YAML格式:

my-template.yml

title: Assemble 
author: Brian Woodward 

和这个模板:

my-template.hbs

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

你可以在页面顶部插入一个脚本标签来设置window.Site = {{site.name}}