詳解基于Wepy開發(fā)小程序插件(推薦)
開發(fā)
使用 wepy 開發(fā)項目時不需要手動配置 app.wpy 下的 config.pages,autopages 插件會自動監(jiān)控 pages 目錄下文件的變化,自動生成更新對應(yīng) app.json 下的 pages。
注意:該插件只會對編譯文件dist里配置添加,源文件是不會改動的。
注意:我還發(fā)現(xiàn)有個問題是他是按命名順序添加的,所以開發(fā)階段可以用客戶端指定路徑,但是發(fā)布的話還是乖乖手動添加吧
這插件看情況使用吧,如果是個人項目的話我覺得還是值得用的,畢竟每次新增頁面都要手動添加很繁瑣,但是如果是合作項目開發(fā)到某個階段的時候還是手動填上去吧,因為便于其他人可以知道你項目的所有跳轉(zhuǎn)路徑有哪些。
plugins: [ autopages: {} ]
將 px 單位轉(zhuǎn)換為 rpx 單位,或者其他單位的 PostCSS插件。
plugins: { px2units: { filter: /.wxss$/ } },
注意:根據(jù)實驗所得只對wxss文件起作用,在wxml的行內(nèi)樣式不改變。
//輸入 .userinfo-nickname { width: 200px; height: 200px;/*no*/ margin: 200rpx; }
//輸出 .userinfo-nickname { width: 200rpx; height: 200px; margin: 200rpx; }
略微有點雞肋,雖然會節(jié)省一點微不足道的代碼量,但是它本身還是有些可能需要用到的配置項的。
配置項 | 作用 |
---|---|
divisor(Number): 除數(shù) | 轉(zhuǎn)換后的值 等于 pixel / divisor |
multiple(Number): 倍數(shù) | 轉(zhuǎn)換后的值 等于 pixel * multiple |
decimalPlaces(Number) | 小數(shù)點后保留的位數(shù) |
comment(String) | 不轉(zhuǎn)換px單位的注釋,默認為 /no/ |
targetUnits(String) | 轉(zhuǎn)換單位,默認值為 rpx |
文本替換,為 plugins 添加 replace 對象,支持單個或者多個規(guī)則,多個規(guī)則可以以 Array 或者 Object 實現(xiàn),filter 的對象為生成后文件的路徑, 例如'dist/app.js',每個規(guī)則也同時支持多個替換條目,同樣是以 Array 或者 Object 實現(xiàn)。
module.exports.plugins = { 'replace': { filter: /moment\.js$/, config: { find: /([\w\[\]a-d\.]+)\s*instanceof Function/g, replace: function (matchs, word) { return ' typeof ' + word + " ==='function' "; } } } };
用法很簡單,指定后綴文件匹配規(guī)則替換函數(shù)。
生產(chǎn)
就以我的一個項目為例,在不用插件的情況下打包體積是6.04M。
然后看看怎么一步步將其體積減少。
JS壓縮插件
module.exports.plugins = { 'uglifyjs': { filter: /\.js$/, config: { } }, };
因為小程序基本JS代碼為主,所以這個效果非??捎^,文檔只寫了這個用法,還有很多自定義選項需要自己去研究,文檔給出的參數(shù)說明鏈接是UglifyJS2,即使如此,單單JS一項都好厲害。
使用前 | 使用后 | 壓縮率 |
---|---|---|
6.04M | 2.76M | 45.69% |
文件壓縮插件支持css,xml,json
module.exports.plugins = { 'filemin': { filter: /\.(json|wxml|xml)$/ } };
使用前 | 使用后 | 壓縮率 |
---|---|---|
2.76M | 2.72M | 98.55% |
唔。。。
有點尷尬,那點體積真的微不足道,一來樣式本來就不多,二來css本身壓縮空間有限,不可能把樣式屬性簡化吧,聊勝于無。
圖片壓縮插件
module.exports.plugins = { 'imagemin': { filter: /\.(jpg|png|jpeg)$/, config: { 'jpg': { quality: 80 }, 'png': { quality: 80 } } } };
參數(shù)說明請看imagemin
使用前 | 使用后 | 壓縮率 |
---|---|---|
2.72M | 2.24M | 82.35% |
不得不說還是可以的,基本用法大家用過打包器都不陌生就不說了,直到某一天騰訊出了一款重量大殺器,請看看下面——
騰訊推出的小程序瘦身工具,通過 WeCOS,小程序項目中的圖片資源會自動上傳到 COS 上,且 WeCOS 自動替換代碼中圖片資源地址的引用為線上地址,移除項目目錄中的圖片資源,從而減小代碼包大小,解決包大小超過限制的問題。
前期準備工作:
- 進入 騰訊云官網(wǎng),注冊騰訊云賬戶,指引參考 注冊騰訊云。
- 登錄 對象存儲控制臺,開通對象存儲服務(wù),創(chuàng)建存儲桶,指引參考 創(chuàng)建存儲桶
- 通過 GitHub 地址 下載 WeCOS 工具。
- 在 Node.js 官網(wǎng)下載環(huán)境并安裝。
我就默認你們都搞好了前期,然后我們先安裝插件
npm install wecos -g
在與開發(fā)目錄app同目錄下創(chuàng)建一個 wecos.config.json 配置文件,在配置里填寫基本的配置信息。
- appDir 指定了小程序開發(fā)目錄。
- appid 為騰訊云賬號的appid。
- bucketname 是為存儲圖片創(chuàng)建的 bucket 的名稱,這里是名為 weixintest 的 bucket。
- folder 可以指定到 bucket 下的某個目錄,本文指定到 /wxtest 目錄下。
- region 是指定上傳到 COS 的指定地區(qū),這里指定為 tj ,即天津。目前COS 支持天津、上海、廣州。
- secret_key、secret_id是賬戶密鑰,用戶可以自行到騰訊云 COS 控制臺上獲取。
之后直接運行命令
wecos
命令行顯示項目中的圖片上傳成功。翻看項目目錄,發(fā)現(xiàn)圖片已經(jīng)被刪除,代碼中的圖片引用也被換成了線上的地址,項目包一下子小了。同時,WeCOS 很貼心的在開發(fā)項目外生成了個 wecos_backup 目錄,來保存原來的圖片作為備份。除此之外,WeCOS 默認啟用監(jiān)聽模式,這是為了讓開發(fā)過程中無感知,當我們不再進行項目開發(fā),停止運行 WeCOS 即可。
和wepy-plugin-imagemin相比。
使用前 | 使用后 | 壓縮率 |
---|---|---|
2.72M | 1.46M | 53.67% |
前者操作簡單無額外依賴,后者效率驚人,具體取舍看項目需要吧。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
BootStrap daterangepicker 雙日歷控件
這篇文章主要介紹了BootStrap daterangepicker 雙日歷控件,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-06-06Bootstrap 3.x打印預(yù)覽背景色與文字顯示異常的解決
前幾天同事有個問題咨詢我,他在調(diào)用print()來打印頁面,發(fā)現(xiàn)打印預(yù)覽頁面上的背景色無法顯示以及文字總是顯示為黑色,感覺非常奇怪,我通過測試發(fā)現(xiàn)是Bootstrap的問題,現(xiàn)在將解決的方法分享給大家,希望可以幫助到同樣遇到這個問題的朋友們,下面來一起看看。2016-11-11JavaScript滿天星導(dǎo)航欄實現(xiàn)方法
本篇文章給大家分享了JavaScript滿天星導(dǎo)航欄實現(xiàn)方法,以前也介紹過很多關(guān)于特效導(dǎo)航的制作方法,對此有興趣的朋友參考學(xué)習(xí)下。2018-03-03解決layui 復(fù)選框等內(nèi)置控件不顯示的問題
今天小編就為大家分享一篇解決layui 復(fù)選框等內(nèi)置控件不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08