構(gòu)建工具是一個把源代碼生成可執(zhí)行應(yīng)用程序的過程自動化的程序(例如Android app生成apk)贮勃。構(gòu)建包括編譯亭枷、連接跟把代碼打包成可用的或可執(zhí)行的形式。
在小型項目中怜跑,開發(fā)者往往手動調(diào)用構(gòu)建過程谎仲,這樣在大型的項目中很不實用彪置,在構(gòu)建過程中難以跟蹤什么需要被構(gòu)建逞频、按照什么順序構(gòu)建以及項目中存在哪些依賴进泼。使用自動化工具會使構(gòu)建過程更為連續(xù)惕稻。
1:webpack
https://webpack.js.org/
webpack是一個打包模塊化JS的工具竖共,在webpack里一切文件都是模塊,通過loader轉(zhuǎn)換文件俺祠,通過plugin注入鉤子公给,最后輸出由多個模塊組合成的文件。webpack專注于構(gòu)建模塊化項目蜘渣。
2:gulp
gulp是一個基于流的自動化構(gòu)建工具淌铐。除了可以管理和執(zhí)行任務(wù),還支持監(jiān)聽文件蔫缸、讀寫文件腿准。gulp被設(shè)計的非常簡單,只通過下面5種方法就可以支持幾乎所有構(gòu)建場景:
3:browserify
http://browserify.org/
Browserify 可以讓你使用類似于 node 的 require() 的方式來組織瀏覽器端的 Javascript 代碼拾碌,通過預(yù)編譯讓前端 Javascript 可以直接使用 Node NPM 安裝的一些庫吐葱。
4:yeoman
https://yeoman.io/
Yeoman是一個強(qiáng)健的工具,庫校翔,及工作流程的組合弟跑,幫你網(wǎng)頁開發(fā)者快速創(chuàng)建出漂亮而且引人入勝的網(wǎng)頁程序。
5:grunt
Grunt和Npm Script類似展融,也是一個任務(wù)執(zhí)行者窖认。Grunt有大量現(xiàn)成的插件封裝了常見的任務(wù)豫柬,也能管理任務(wù)之間的依賴關(guān)系。
6:babel
https://babeljs.io
Babel 是一個工具鏈扑浸,主要用于將 ECMAScript 2015+ 版本的代碼轉(zhuǎn)換為向后兼容的 JavaScript 語法烧给,以便能夠運(yùn)行在當(dāng)前和舊版本的瀏覽器或其他環(huán)境中。
7:FIS3
https://fex-team.github.io/fis3/
Fis3是來自百度的國產(chǎn)構(gòu)建工具喝噪,相對于grunt础嫡,gulp這些只提供了基本功能的工具,F(xiàn)is3集成了web開發(fā)中常用的購將功能酝惧,
8:Rollup
Rollup是一個和webpack很類似但專注于ES6的模塊打包工具榴鼎,它的亮點在于,能針對ES6源碼進(jìn)行Tree Shaking晚唇,以去除那些已被定義但沒使用的代碼并進(jìn)行Scope Hoisting(作用域提升)巫财,以減小輸出文件的大小和提升運(yùn)行性能。rollup的方法和webpack差不多
9:Parcel
https://www.parceljs.cn/
極速零配置Web應(yīng)用打包工具哩陕,Parcel 使用 worker 進(jìn)程去啟用多核編譯平项。同時有文件系統(tǒng)緩存,即使在重啟構(gòu)建后也能快速再編譯悍及。