2016-02-02 161 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