2013-11-10 59 views
1

我已經使用grunt構建了一個我想要打包爲AMD模塊的js庫。還有其他一些連接庫文件的任務,所以我將非AMD模塊作爲開始。如何使用grunt創建require.js包

這是Gruntfile的樣子:

module.exports = function(grunt) { 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    concat: { 
     all: { 
     options: { 
      separator: '\n\n', 
      stripBanners: true, 
      banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' + 
      '<%= grunt.template.today("yyyy-mm-dd") %> */\n\n' 
     }, 
     files: { 
      'dist/<%= pkg.name %>.js': ['src/file1.js', 'src/file2.js'], // this works 
      'dist/<%= pkg.name %>.amd.js': ['src/file1.js', 'src/file2.js'] // this is meant to create the AMD version of the library 
     } 
     } 
    } 
}); 
grunt.registerTask('default', ['concat']); 
}; 

產生的文件(目標library.amd.js)是指包含library.js內容包括require.jsdefine(..., ..., ...)部分:

define('library', ['dependency1', 'dependency2'], function(dep1, dep2) { 
    // content of library.js here 
}); 

如何我可以去做這個嗎?我曾考慮將header.js(對於define('library...)和footer.js(對於});)添加到AMD目標的構建源,但希望有一個更優雅的解決方案。我也看了一下grunt模板,但是找不到將完整文件包含到模板中的方法。

回答