2013-11-20 34 views
0

我想要将git commit ID作为我创建的zip文件的一部分。我试图使用grunt-git-rev-parse,但我没有运气。我的zip文件是name-.zip而不是name-3A5BC3.zip。我如何去获取git commit ID到我的文件名?试图在grunt中获取git commit ID

module.exports = function(grunt) { 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    "git-rev-parse": { 
     options: { 
     prop: 'git-revision', 
     number: 6 
     } 
    }, 

    jshint: { 
     options: { 
     curly: true, 
     eqeqeq: true, 
     eqnull: true, 
     browser: true, 
     globals: { 
      jQuery: true 
     }, 
     }, 
     all: ['gruntfile.js', 'public/javascripts/**/*.js'], 
    }, 

    bower: { 
     install: { 
     options: { 
      install: true, 
      copy: false 
     } 
     } 
    }, 

    jade: { 
     compile: { 
     options: { 
      data: { 
      debug: false 
      } 
     }, 
     files: { 
      "build/html/index.html": ["src/jade/index.jade"], 
      "build/html/login.html": ["src/jade/login.jade"] 
     } 
     } 
    }, 

    stylus: { 
     compile: { 
     options: { 
      urlfunc: 'embedurl' 
     }, 
     files: { 
      'build/css/site.css': ['src/stylus/site.styl'] 
     } 
     } 
    }, 

    uglify: { 
     options: { 
     mangle: false, 
     banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n' 
     }, 
     dist: { 
     files: { 
      'build/js/<%= pkg.name %>.min.js': ['public/javascripts/**/*.js', 
      'bower_components/angulartics/src/angulartics.js', 
      'bower_components/angulartics/src/angulartics-google-analytics.js'] 
     } 
     } 
    }, 

    compress: { 
     main: { 
     options: { 
      archive: "<%= pkg.name %>-<%= grunt.config.get('git-revision') %>.zip", 
      mode: 'zip', 
      pretty: true 
     }, 
     files: [ 
      {expand: true, cwd: 'build/', src: ['**/*']} 
     ] 
     } 
    } 
    }); 


    grunt.loadNpmTasks('grunt-bower-task'); 
    grunt.loadNpmTasks('grunt-contrib-jshint'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-jade'); 
    grunt.loadNpmTasks('grunt-contrib-stylus'); 
    grunt.loadNpmTasks('grunt-contrib-compress'); 
    grunt.loadNpmTasks('grunt-git-rev-parse'); 


    grunt.registerTask('test', ['jshint']); 
    grunt.registerTask('build', ['bower', 'jade', 'stylus', 'uglify']); 
    grunt.registerTask('pkg', ['git-rev-parse', 'compress:main']); 
}; 

回答

3

您错过了您的grunt-git-rev-parse任务的多任务目标,因此它从未运行。 :-)

"git-rev-parse": { 
    build: { 
    options: { 
     prop: 'git-revision', 
     number: 6 
    } 
    } 
} 

不是你的错,因为这个特别的插件文件是对这个不清楚,但始终确保你可以得到一个输出,无需指定多任务目标。如果不能,添加一个通常会解决问题(您可以始终检查源代码以确保它是多任务或单个任务)。