準(zhǔn)備工作
1. 為前端選擇合適的預(yù)處理工具和資源管理工具
預(yù)處理工具又分為 js 預(yù)處理工具和 css 預(yù)處理工具。Javascript 一直以來最為人詬病的一點(diǎn)就是缺乏原生的模塊機(jī)制,所有 js 代碼文件在被 html 頁面引入后將共用同一個命名空間。所以才出現(xiàn)了各種“標(biāo)準(zhǔn)”嘗試解決這個問題,但他們都不是原生的,需要額外的工具對代碼進(jìn)行特殊處理。雖然 ES6 終于引入了模塊機(jī)制,但以現(xiàn)在的瀏覽器支持程度,還不足以“毫無顧慮地隨拿隨用”。所以 js 預(yù)處理工具最主要的工作就是幫助解決 js 的模塊問題。而 css 預(yù)處理工具則很好理解,就是把 sass,less 或者 stylus 代碼翻譯、合并成 css 代碼。
資源管理工具則是幫我們管理前端所需的各種資源文件(比如 css、js、圖片、字體等等),便于我們引用。目前常用的解決方法是將他們直接編碼進(jìn) js 代碼中,然后像引用 js 模塊一樣引用它們。這可比手寫各種 url 方便多了。
正如標(biāo)題所說,我們將采用 Webpack,因?yàn)樗邆渖厦嫠f的所有功能。此外還支持代碼熱替換,使修改代碼后不用刷新頁面也能在瀏覽器中立即看到效果。
2. 為后端選擇合適的預(yù)處理工具
后端面對的都是 js 代碼,不需要前端那樣的資源管理工具,另外, Node 強(qiáng)迫你使用至少一種模塊管理方案(CommonJS 或 ES6 的 import),也不用考慮代碼的依賴問題。
所以后端要簡單許多,唯一需要考慮的基本上就剩下如何將 ES6 轉(zhuǎn)譯成 ES5 了(如果你打算使用 ES6 的話)。目前常用的做法是使用 Babel,你可以用 Babel 命令行工具獨(dú)立執(zhí)行編譯過程,也可以配置 Babel register 實(shí)現(xiàn)代碼運(yùn)行時動態(tài)翻譯,這對于開發(fā)場景而言無疑是最方便的。所以我們選擇后一種方式。
3. 為整個項(xiàng)目選擇合適的流程控制工具
流程控制工具是為了幫助我們管理諸如代碼檢查、編譯、壓縮、移動、部署這些任務(wù)的,原本我們是通過手敲命令(或者高級一點(diǎn)寫個腳本)的方式做,有了流程控制工具以后,只需要提供配置文件和少量代碼就可以完成。
目前最流行的解決方案是 gulp。不過,由于我們這里要搭建的是開發(fā)環(huán)境,沒有移動代碼、壓縮、部署等需求,所以不需要功能強(qiáng)大的 gulp。我們只要用 nodemon 這個工具監(jiān)聽代碼變動然后適時重啟 server就夠了。
正式開始搭建
1. 利用 Express 腳手架快速搭建應(yīng)用
使用 Express 提供的腳手架工具(Express application generator)可以在 1s 之內(nèi)搭建出最基本的應(yīng)用。
如果你以前還沒試過,首先執(zhí)行下面的命令安裝
npm install express-generator -g
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。