grunt <% %>模板和使用配置文件

 
 
使用<% %>分隔符指定的模板會在任務從它們的配置中讀取相應的數據時將自動擴展掃描。模板會被遞歸的展開,直到配置中再也不存在遺留的模板相關的信息(與模板匹配的)。
 
 整個配置對象決定了屬性上下文(模板中的屬性)。此外,在模板中使用grunt以及它的方法都是有效的,例如: <%= grunt.template.today('yyyy-mm-dd') %>。
 
<%= prop.subprop %> 將會自動展開配置信息中的prop.subprop的值,無論是什麼類型。像這樣的模板不只能夠用來引用字符串值,還能夠引用數組或者其餘對象類型的值。

<% %> 執行任意內聯的JavaScript代碼。對於控制流或者循環來講是很是有用的。

下面以concat任務配置爲例,運行grunt concat:sample時將經過banner中的/* abcde */連同foo/*.js+bar/*.js+bar/*.js匹配的全部文件來生成一個名爲build/abcde.js的文件。 
 
 
 

 grunt.initConfig({})中設置屬性:

grunt.initConfig({
  concat: {
    sample: {
      options: {
        banner: '/* <%= baz %> */\n',   // '/* abcde */\n'
      },
      src: ['<%= qux %>', 'baz/*.js'],  // [['foo/*.js', 'bar/*.js'], 'baz/*.js']
      dest: 'build/<%= baz %>.js',      // 'build/abcde.js'
    },
  },
  //用於任務配置模板的任意屬性
  foo: 'c',
  bar: 'b<%= foo %>d', // 'bcd'
  baz: 'a<%= bar %>e', // 'abcde'
  qux: ['foo/*.js', 'bar/*.js'],
});

  

 

導入外部數據:

 在下面的Gruntfile中,項目的元數據是從package.json文件中導入到Grunt配置中的,而且grunt-contrib-uglify 插件中的 uglify 任務被配置用於壓縮一個源文件以及使用該元數據動態的生成一個banner註釋。 
 
 在下面的Gruntfile中,項目的元數據是從package.json文件中導入到Grunt配置中的,而且grunt-contrib-uglify 插件中的 uglify 任務被配置用於壓縮一個源文件以及使用該元數據動態的生成一個banner註釋。 
 
grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  uglify: {
    options: {
      banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
    },
    dist: {
      src: 'src/<%= pkg.name %>.js',
      dest: 'dist/<%= pkg.name %>.min.js'
    }
  }
});

  

 轉載:http://www.gruntjs.net/configuring-tasksjson

相關文章
相關標籤/搜索