weweb是一個兼容小程序語法的前端框架,你能夠用小程序的寫法,來寫web單面應用。若是你已經有小程序了,經過它你能夠將你的小程序運行在瀏覽器中。在小程序大行其道的今天,它可讓你的小程序代碼獲得最大限度的發揮,他具備如下優勢:前端
該項目基於小程序開發者工具內置的小程序運行框架來實現的,咱們在仔細研究了小程序官方的底層框架後,實現了小程序運行在web端的service和view引擎,爲了使[weweb]能適應web端的性能要求,相較小程序原生框架,主要有如下調整:node
開發方式能夠直接套用你之前開發小程序的方式,不須要另外的學習成本,只是在小程序開發完後,經過下面介紹的二種運行方式,把小程序編譯轉換成相應的h5應用,而後把編譯後的代碼扔到服務器上就好了ios
安裝:github
npm install weweb-cli -g
運行示例:web
#./demos/demo20170111/這是小程序的存放路徑 weweb ./demos/demo20170111/
Options:npm
# clone [weweb]項目後安裝依賴 npm i # 構建核心庫: npm run build # 運行示例: ./bin/weweb ./demos/demo20170111/ # 壓縮app代碼:使用環境變量 NODE_ENV=production NODE_ENV=production ./bin/weweb demos/demo20170111 # 替換編譯器:當默認編譯出錯時使用環境變量 DFT_CMP=true 可切換爲微信開發者工具自帶的編譯器 DFT_CMP=true ./bin/weweb demos/demo20170111 # 環境變量能夠組合使用 NODE_ENV=production DFT_CMP=true ./bin/weweb demos/demo20170111
demo小程序二維碼以下:json
點此查看weweb編譯後的h5在線演示
能夠比較一下小程序和轉換後生成的h5應用的差別
[demo源碼]小程序
weweb默認使用咱們本身寫的編譯器對wxml和wxss進行編譯,但目前編譯器還處於試用階段,有些case可能沒測全,使用weweb過程當中若是發現一些異常狀況,能夠嘗試切換成微信官方編譯器,看看是不否能解決問題。出現相似問題歡迎你們給咱們提[issue]。咱們將盡快修正後端
# 切換成微信開發者工具自帶的編譯器:使用環境變量 DFT_CMP=true 以下: DFT_CMP=true ./bin/weweb demos/demo20170111
轉換成H5後,會存在跨域訪問接口及脫離微信環境帶來的一些api沒法支持的問題。咱們能夠經過在小程序的app.json
文件中增長weweb
配置項來解決一些常見的問題:
loginUrl
項來設置調用wx.login
時跳轉到的登陸頁面/** * 此處的loginUrl地址必須是在app.json裏註冊了的小程序地址 */ "weweb":{ "loginUrl":"/page/H5login" } 當登陸成功後調用 wx.loginSuccess(); 這個api能夠自動返回到來源頁面 示例代碼: success : function(rt){ if(rt.result){ var login = require("../../modules/login/index.js"); app.globalData.userInfo = rt.result; login.setLoginInfo(rt.result); wx.loginSuccess(); }else{ toast.show(self,rt.status.status_reason||'登陸失敗'); } }
/** * 此處/remoteProxy是weweb自帶server實現的一個代理接口 * 實際項目中請改爲本身的真實代理地址。若是接口支持返回jsonp格式,則無需作此配置 */ "weweb":{ "requestProxy":"/remoteProxy" }