2016-02-02 166 views

回答

18

的你可以得到的git修订的WebPack这样:

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

谢谢!删除回车符:附加'.trim()'。 –

3

您可以结合的git-REV,arciverjs和上积聚的WebPack插件为这些目的

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(); 
    }) 
]; 

下面是从代码片段webpack配置文件,它将创建一个名为修订的存档。为了得到git的版本,你可以使用git-REV插件或代码段从答案@bolelamx