摘要:?jiǎn)?dòng)新技術(shù)提供測(cè)試框架進(jìn)行單元測(cè)試,代碼覆蓋率報(bào)告,可與和快速對(duì)接。關(guān)于的模塊化,預(yù)處理器的編譯。頁(yè)面的其他資源文件,通過(guò)引入單元測(cè)試日后調(diào)整,待開(kāi)發(fā)使用手冊(cè)流程基本位于創(chuàng)建視圖更多說(shuō)明主動(dòng)引入的默認(rèn)地址為位于配置相關(guān)的和文件。
webpack2-Scaffolding
請(qǐng)各位看客老爺不要吝嗇自己的Star,先來(lái)Github右上角Star一下唄。
Github右上角Star。
Github右上角Star。
重要的事情說(shuō)三遍
項(xiàng)目地址https://github.com/sayll/avalon-webpack-start
介紹webpack2腳手架正式版,一個(gè)多資源統(tǒng)籌的腳手架。
本項(xiàng)目使用avalon2作為演示框架。
為兼容低版本瀏覽器,我也是強(qiáng)烈推薦一下它。市面上應(yīng)該也算唯一能夠支持到IE8以下的MVVM框架了吧。
服務(wù)端使用Koa。需要注意的是,只有一個(gè)目的那就是提供了webpack-dev-middleware 和 webpack-hot-middleware(代碼熱替換)。使用自定義的Koa程序替換webpack-dev-server,讓它更容易實(shí)現(xiàn)universal 渲染和為了不使這個(gè)包過(guò)于龐大。
針對(duì)不同的loader采用了多線程編譯,極大的加快了編譯速度。
使用webpack.DllReferencePlugin打包框架和庫(kù)。加快編譯與打包速度。
啟動(dòng)新技術(shù)tree-shaking
提供測(cè)試框架進(jìn)行單元測(cè)試,代碼覆蓋率報(bào)告,可與Travis-ci和Coveralls快速對(duì)接。【配置說(shuō)明】
Babel被配置babel-plugin-transform-runtime可以讓代碼更優(yōu)化。
關(guān)于【Css】css的模塊化,預(yù)處理器的編譯。(支持sass,scss,less,postcss)
針對(duì)低版本瀏覽器和其他瀏覽器內(nèi)核的特殊性,啟用autoprefixer自動(dòng)添加瀏覽器前綴
針對(duì)移動(dòng)開(kāi)發(fā),有獨(dú)特的處理方案。(具體文檔等待補(bǔ)充)
可導(dǎo)入字體和字體圖標(biāo),操作非常簡(jiǎn)單。(如阿里系icon)【配置文檔】
每次修改都會(huì)生成新的文件名,防止舊樣式緩存帶來(lái)的影響。(與JS間做了特殊處理,通過(guò)JS引入的CSS不會(huì)因JS改變而改變它的hash值)
針對(duì)開(kāi)發(fā)模式啟用修改自動(dòng)刷新頁(yè)面。(做了特殊處理,發(fā)布模式將得到優(yōu)化)
關(guān)于【Js】支持ES6的最新特性
模塊化,可才用ES6的import,也可用AMD規(guī)范的require
每次修改都會(huì)生成新的文件名,防止舊腳本緩存帶來(lái)的影響。(與CSS間做了特殊處理,通過(guò)JS引入的CSS不會(huì)因CSS改變而改變它的hash值)
快速編譯,自動(dòng)刷新。
將常用的框架和庫(kù)進(jìn)行多帶帶打包。(Dll)防止重復(fù)引用,導(dǎo)致打包文件臃腫。
提供公共腳本的文件入口,此文件將被所有頁(yè)面自動(dòng)引用。(可設(shè)置全局變量,引入公共的庫(kù)。如Jquery)
關(guān)于【Html】支持單頁(yè)應(yīng)用和多頁(yè)應(yīng)用的混合開(kāi)發(fā)。
自動(dòng)引入頁(yè)面的CSS和JS文件。無(wú)需手動(dòng)設(shè)置URL。(所有文件hash的改變都會(huì)導(dǎo)致文件名改變,這里的資源引用全由內(nèi)部自動(dòng)完成)
如有使用常用的框架和庫(kù)進(jìn)行多帶帶打包。(Dll),將需要多帶帶引用dll的vendor.js;
開(kāi)始 環(huán)境配置安裝node.js
安裝git
依賴配置確認(rèn)好你的環(huán)境配置,然后就可以開(kāi)始以下步驟。
$ git clone https://github.com/sayll/avalon-webpack-start.git $ cd avalon-webpack-start $ npm install # Install project dependencies $ npm start # Compile and launch
如果一切順利,就能正常打開(kāi)端口:http://localhost:1000/
開(kāi)發(fā)過(guò)程中,你用得最多的會(huì)是npm start,但是這里還有很多其它的處理:
npm run | 解釋 |
---|---|
start | 第一次運(yùn)行啟用。生成DLL文件,服務(wù)啟動(dòng)在1000端口,代碼熱替換開(kāi)啟。 |
deploy | 刪除舊文件,生成新DLL,進(jìn)行代碼測(cè)試,打包相關(guān)文件(默認(rèn)目錄~/build)。 |
dev | 與npm start類似相同,只有當(dāng)DLL文件存在時(shí)可用。加快開(kāi)發(fā)速度。 |
test | 開(kāi)啟Karma測(cè)試并生成覆蓋率報(bào)告。 |
visualizer | 打包資源分析 |
build | 同dev在DLL文件存在時(shí),加快打包速度。 |
clean | 清除打包的文件 |
cnpm | 替換為淘寶鏡像 |
dll | 適合第一次啟動(dòng)時(shí)運(yùn)行,生成DLL文件。 |
第一次運(yùn)行,推薦使用 start,后續(xù)調(diào)試使用dev
打包推薦使用deploy
目前所有相關(guān)開(kāi)發(fā)打包都需依賴dll,當(dāng)不清楚或運(yùn)行出錯(cuò)時(shí),嘗試運(yùn)行一下npm run dll,再完成接下來(lái)的操作。
程序目錄. ├── build # 所有打包配置項(xiàng) ├── config # 項(xiàng)目配置文件 ├── server # Express 程序 (使用 webpack 中間件) │ └── main.js # 服務(wù)端程序入口文件 ├── app # 程序源文件 │ ? ├── html ? ? ? ? ? ? ? ? # 多頁(yè)或單頁(yè)應(yīng)用的入口HTML │ ? ├── source ? ? ? ? ? ? ? # 公共的資源文件 │ ? ? ? ├── css │ ? ? ? ├── font │ ? ? ? ├── img |? ? ? ?└── js ? ? ? ? ? ? ? │ ? ├── static ? ? ? ? ? ? ? # 公共的靜態(tài)資源文件(所有內(nèi)部文件通過(guò)index.js引入,可配置全局變量。) │ ? └── view ? ? ? ? ? ? ? # 主路由和異步分割點(diǎn) │ ? ? ? └── index ? ? ? ? ? # 匹配html文件夾中的index.html。(css,js文件名對(duì)應(yīng)文件夾名,可直接打包無(wú)需多帶帶引入) │ ? ? ? ? ? ├── index.js ? ? # 直接與index.html匹配的入口文件,可以作為單頁(yè)應(yīng)用的入口,在內(nèi)部定義自己的項(xiàng)目目錄 │ ? ? ? ? ? ├── index.css ? ?# 如是多頁(yè)應(yīng)用,可設(shè)置對(duì)應(yīng)的CSS文件,直接匹配。 │ ? ? ? ? ? └── other ** ? ? # 頁(yè)面的其他資源文件,通過(guò)index.js引入 └── test ? ? ? ? ? ? ? ? ? # 單元測(cè)試(日后調(diào)整,待開(kāi)發(fā)ing)使用手冊(cè) 流程
基本
位于app/html創(chuàng)建HTML視圖【更多說(shuō)明】
主動(dòng)引入DLL的JS,默認(rèn)地址為
位于app/view配置html相關(guān)的JS和CSS文件。(JS和CSS需與HTML保持一致,可參考現(xiàn)有模版)【更多說(shuō)明】
高級(jí)
引用字體圖標(biāo)Icon【更多說(shuō)明】
使用框架(avalon)或庫(kù)(jquery)【更多說(shuō)明】
設(shè)置全局變量。雖引入公共庫(kù),但每次調(diào)用都需重新聲明。所以就有了公共文件來(lái)提前聲明?!靖嗾f(shuō)明】
使用Css預(yù)處理器(更多說(shuō)明)
使用CDN(更多說(shuō)明)
修改目錄結(jié)構(gòu)(更多說(shuō)明)
最后
打包文件為build文件夾,請(qǐng)以此為根目錄。
更新日志更新詳情
最重要的事情項(xiàng)目地址: https://github.com/sayll/avalon-webpack-start
親不要吝嗇自己的Star,到Github右上角Star一下唄。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/81391.html
摘要:正式版正式版,簡(jiǎn)單方便的構(gòu)建單頁(yè)和多頁(yè)用用。下一步是完善單元測(cè)試,代碼覆蓋率報(bào)告如果大家有更好的想法及建議請(qǐng)?zhí)?。開(kāi)啟測(cè)試并生成覆蓋率報(bào)告。頁(yè)面的其他資源文件,通過(guò)引入單元測(cè)試日后調(diào)整,待開(kāi)發(fā)樣式使用可添加替換預(yù)處理。 webpack2正式版 webpack2正式版,簡(jiǎn)單方便的構(gòu)建單頁(yè)和多頁(yè)用用。(啟用tree-shaking新技術(shù))地址:avalon-webpack-start 這個(gè)啟...
摘要:多語(yǔ)言使用了的版本,并整合了的多語(yǔ)言和使用者自己的多語(yǔ)言配置,而且會(huì)根據(jù)用戶系統(tǒng)的語(yǔ)言自動(dòng)切換為中文和英文。 谷歌今天發(fā)布了一系列性感的軟件,我們也發(fā)布了一款大家期待已久的開(kāi)發(fā)者工具,同樣很性感 :) iView 2.0 已經(jīng)發(fā)布有兩個(gè)月了,在 2.0 發(fā)布后,npm 下載量、issues 數(shù)量都提升了很多(可以 watch 下項(xiàng)目,感受感受郵件量)。兩個(gè)月里,我們平均 1 周發(fā)布一個(gè)...
摘要:從再到目前當(dāng)紅明星,前端模塊打包技術(shù)日新月異,在今年月份和月份左右接連更新了和版本為了減少冗余模塊,縮減文件大小,中也加入了關(guān)于的特征,可以查看知乎如何評(píng)價(jià)新引入的代碼優(yōu)化技術(shù)的討論。 從Grunt->gulp->webpack,再到目前當(dāng)紅明星rollup,前端模塊打包技術(shù)日新月異,webpack在今年1月份和6月份左右接連更新了v2和v3版本,為了減少冗余模塊,縮減bundle文件...
摘要:名稱后自動(dòng)自動(dòng)補(bǔ)全的功能將被移除在配置時(shí),官方不再允許省略擴(kuò)展名,的配置寫(xiě)法上將逐步趨于嚴(yán)謹(jǐn)。使用自定義參數(shù)作為配置項(xiàng)傳入方式將做調(diào)整如果你隨意將自定義參數(shù)通過(guò)傳入到配置項(xiàng)中,如你會(huì)發(fā)現(xiàn)這將不會(huì)被允許,的執(zhí)行將會(huì)遵循更為嚴(yán)格的標(biāo)準(zhǔn)。 歷時(shí)多日,webpack2.2正式版終于趕在年前發(fā)布了,此次更新相對(duì)于1.X版本有了諸多的升級(jí)優(yōu)化改進(jìn),筆者也在第一時(shí)間查閱了官方的文檔,整理和翻譯了由w...
摘要:它會(huì)檢測(cè)出最大靜態(tài)子樹(shù)就是不需要?jiǎng)討B(tài)性的子樹(shù)并且從渲染函數(shù)中萃取出來(lái)。這樣在每次重渲染的時(shí)候,它就會(huì)直接重用完全相同的同時(shí)跳過(guò)比對(duì)。需要注意的是,中的操作必須是同步的,不可以存在異步操作的情況。 新增:哈哈,最近又推出了 vue 的文章,在這里放個(gè)鏈接~手把手教你從零寫(xiě)一個(gè)簡(jiǎn)單的 VUE 感謝有人看我扯技術(shù),這篇文章主要介紹最近非?;鸬膙ue2前端框架的特點(diǎn)和vue2+vuex2+we...
閱讀 1288·2021-11-11 16:54
閱讀 1830·2021-10-13 09:40
閱讀 1011·2021-10-08 10:05
閱讀 3568·2021-09-22 15:50
閱讀 3795·2021-09-22 15:41
閱讀 2011·2021-09-22 15:08
閱讀 2419·2021-09-07 10:24
閱讀 3633·2019-08-30 12:52