? ? ? ?最近公司開發小程序,為了占據市場,申請了十幾個小程序,但是每次改一些bug什么的。。都要一次次打開每一個小程序,然后做相同的事情。。所以基于此,用gulp寫了個腳本。。。修改其中一個小程序,然后可以直接同時生成你想要個數的不同內容的小程序。
? ? ? ?首先簡單介紹下gulp
gulp是基于Nodejs的自動任務運行器, 她能自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的的測試、檢查、合并、壓縮、格式化、瀏覽器自動刷新、部署文件生成,并監聽文件在改動后重復指定的這些步驟。在實現上,她借鑒了Unix操作系統的管道(pipe)思想,前一級的輸出,直接變成后一級的輸入,使得在操作上非常簡單。通過本文,我們將學習如何使用Gulp來改變開發流程,從而使開發更加快速高效。(http://www.ydcss.com/archives/18),gulp是基于node.js的庫來進行文件操作的,所以得先裝上node.js,然后大家根據這個網址來進行集成就好,重點說一下package.json,json文件不能有注釋,并且大部分成熟這個文件除了必須設置的屬性外,還需要有
"devDependencies": {
"gulp-imagemin":"^3.0.3",
},
這個屬性,這個屬性里面包含了你的腳本所用到的所有插件, "gulp-imagemin":"^3.0.3"? ?這是個例子
然后再創建一個gulpfile.js文件,這個文件里就是腳本執行的代碼了,這個腳本的邏輯是這樣的:1.刪除指定文件夾下的所有文件(當初復制了多少個小程序就刪除多少個文件夾下的文件)gulp.task('clean',del.bind(null,common.clean_dists))? 2.將資源文件拷貝到指定文件夾下(n個小程序對應n個不同名稱的文件夾)gulp.task('copy',function() {
returngulp.src(dirs+'/**/*')
.pipe(multiDest(common.copy_dists, {mode:'0755'}));
});
最后一步呢,就是把指定文件的字符串替換掉。
gulp.task('generate',next=>{
for(vari=0;i
generateConfig(i)//我把所有需要修改的信息都抽象到了一個js文件中,所以這個方法是修改config.js文件中的一些變量
generatejson(i)//因為我的小程序中app.json文件也需要修改,所以單另出一個方法修改它
}
})
這三步統一到一個方法中gulp.task('build', ['clean'],next=>runSequence('copy','generate','compile',next))
這些方法都寫好后,直接打開終端cd到當前文件夾執行兩個命令:npm install? ?然后再執行gulp build
之所以執行build,是因為在gulpfile.js中我指定了gulp.task('build', ['clean'],next=>runSequence('copy','generate','compile',next))這個方法叫build,并且打算拿這個方法作為js執行的入口,順利的話執行完了,就創建好了對應個數的小程序,這些代碼片段中出現的common是我抽象出來的一個js文件,專門放需要修改的數據數組
先寫這么多吧,項目是公司的,所以源碼不能公開,各位有什么不懂的我們可以一起討論,這個東西入門比較麻煩,但是寫好了還是很方便的,主要用到了一些gulp的插件和node.js的語法,我沒有學過node.js所以這個是和同事一起完成的。