在項目中咱們常常會想要在本地完成編譯後(好比npm run build),再進行git部署,此時咱們就須要進行多步操做,顯然會很繁瑣。使用這個gulp腳本便可完成一行命令打包部署,而且能夠自定義commit內容。
Githubjavascript
git clone git@github.com:Hzy0913/gulp-push.git
java
npm install
git
var gulp = require('gulp'); var exec = require('child_process').exec; var gulpSequence = require('gulp-sequence') var argv = require('minimist')(process.argv.slice(2)); //RUN npm run build 打包命令(按照你項目的打包命令配置) gulp.task('build', function (cb) { exec('npm run build', function (err, stdout, stderr) { cb(err); }); }); // cmd back 返回上一層 gulp.task('back', function (cb) { exec('cd ..', function (err, stdout, stderr) { cb(err); }); }); // add 等同於執行 git add * 命令(具體能夠本身配置,如 add -A或者add .) gulp.task('add', function (cb) { exec('git add *', function (err, stdout, stderr) { cb(err); }); }); // push 執行git push 操做 gulp.task('push', function (cb) { exec('git push', function (err, stdout, stderr) { cb(err); }); }); // pull 執行git pull 操做 gulp.task('pull', function (cb) { exec('git pull', function (err, stdout, stderr) { cb(err); }); }); // commit 附加自定義commit的push操做 var commitdefault='s' gulp.task('commit', function (cb) { if(!argv.a){ commitcon=commitdefault }else { var commitcon=argv.a } exec('git commit -m '+commitcon, function (err, stdout, stderr) { cb(err); }); }); //**********************具體使用命令***************************** // 默認 gulp 命令推送到倉庫 (如需自定義 commit 執行 gulp -a 自定義commit) gulp.task( 'default', gulpSequence( 'add','commit', 'push')); // gulp b 命令執行build打包,而且推送到倉庫 (如需自定義 commit 執行 gulp b -a 自定義commit) gulp.task( 'b', gulpSequence( 'build','add', 'commit', 'push')); // gulp p 命令更新遠程倉庫 gulp.task( 'p', gulpSequence('pull'));
1.__直接push代碼到遠程倉庫__(git add * +git commit -m 's' +git push)gulp
github
2.__自定義commit內容push代碼到遠程倉庫__(git add * +git commit -m 's' +git push)gulp -a 自定義commit
npm
3.__打包後push代碼到遠程倉庫__(build後 git add * +git commit -m 自定義 +git push)gulp b
gulp
4.__自定義commit內容push代碼到遠程倉庫__(build後 git add * +git commit -m 自定義 +git push)gulp b -a 自定義commit
bash
5.__更新遠程代碼倉庫__(git pull)gulp p
ui
自定義commit命令並打包上傳(在你的git bash命令行中)
spa
具體代碼能夠看我githubhttps://github.com/Hzy0913/gulp-push命令行