2016-02-02 7 views

Antwort

18

Sie verwenden können:

var childProcess = require('child_process'), 
VERSION = childProcess.execSync('git rev-parse HEAD').toString(); 
+1

Dank! Entfernen Sie den Wagenrücklauf: append '.trim()'. –

3

Sie können git-rev, arciverjs kombinieren und auf-build-webpack Plugins für diese Zwecke

https://www.npmjs.com/package/git-rev

http://archiverjs.com/docs/

https://www.npmjs.com/package/on-build-webpack

var childProcess = require('child_process'), 
    VERSION = childProcess.execSync('git rev-parse HEAD').toString(); 

var WebpackOnBuildPlugin = require('on-build-webpack'); 

var plugins = [ 
    //... 
    new WebpackOnBuildPlugin(function(stats) { 
    var fs = require('fs'); 
    var archiver = require('archiver'); 

    var output = fs.createWriteStream(__dirname + '/' + VERSION + '-example.tar'); 
    var archive = archiver('tar'); 

    output.on('close', function() { 
     console.log(archive.pointer() + ' total bytes'); 
     console.log('archiver has been finalized and the output file descriptor has closed.'); 
    }); 

    archive.on('error', function(err) { 
     throw err; 
    }); 

    archive.pipe(output); 

    archive.bulk([ 
     { expand: true, cwd: 'source-dir/', src: ['*.*'] } 
    ]); 

    archive.finalize(); 
    }) 
]; 

Hier ist der Code-Schnipsel aus webpack config Datei, die ein Archiv mit der Revision im Namen erstellt. Für immer auf diese Weise git Revision in webpack bekommen git Revision Sie git-rev-Plugin oder Code-Schnipsel aus Antwort von @bolelamx