天天看點

微信開發者工具項目wap.php,微信web開發者工具

微信web開發者工具

微信開發者工具是用node-webkit,基于node.js和chromium的應用程式實時運作環境開發的。界面功能用React編寫,wxml、wxss經過編譯生成html和css。

MINA(MINA IS NOT APP) 是在微信中開發小程式的架構。MINA提供了自己的視圖層描述語言wxml和wxss,以及基于JavaScript的邏輯層架構,并在視圖層與邏輯層間提供了資料傳輸和事件系統。同時小程式提供UI元件庫和底層API,基于微信生态,目測隻支援在微信上運作。

檢視開發工具源代碼

cd /Applications/wechatwebdevtools.app/Contents/Resources/app.nw

├── app

├── modified_modules

├── node_modules

└── package.json

cd /Applications/wechatwebdevtools.app/Contents/Resources/app.nw/app/dist

├── app.js

├── common

├── actions // 動作

├── stores // 資料層

├── components //元件

├── dispatcher // 派發器

├── config // 配置

├── contentscript

├── cssStr // react中使用css的封裝

├── debugger

├── editor

├── extensions // chrome 開發者工具擴充

├── inject

├── lib // 第三方庫

├── utils

└── weapp

檢視package.json

{

"main":"app/html/index.html",

"name":"微信web開發者工具",

"appname":"wechatwebdevtools",

"version":"0.9.092300",

"window":{

"title":"微信web開發者工具 v0.9.092300",

"icon":"app/images/icon.png",

"toolbar":true,

"width":600,

"height":480,

"frame":true

},

"inject_js_start":"app/dist/inject/jweixindebug.js",

"inject_js_end":"app/dist/inject/devtools.js",

"chromium-args":"-ignore-certificate-errors -load-extension=/Applications/wechatwebdevtools.app/Contents/Resources/app.nw/app/dist/extensions/",

"node-remote":"http://*.appservice.open.weixin.qq.com/*",

"webview":{

"partitions":[

{

"name":"trusted",

"accessible_resources":[""]

},

{

"name":"devtools",

"accessible_resources":[""]

}

]

}

}

應用程式打開的是app/html/index.html,加載了../dist/app.js

跳轉到ContainController.js

require("./lunch/lunch.js"), //登入

require("./Create/create.js"), //建立項目

require("./main.js"), //主界面

功能元件用的是react+flux,代碼畢竟是壓縮轉換過的,prettify之後可以浏覽看看

lib目錄

第三方庫

react+flux

webapp目錄

├── appservice

├── commit

├── newquick //quick-start 的示例代碼

├── onlinevendor

├── tpl //page 頁面的模闆

├── trans //wxml、wxss的轉換方法

├── utils

├── vendor

└── weApp.js

weApp.js

調用trans替換,正則比對對應的file是否存在,添加到tpl/appserviceTpl.js

commit

├── build.js

├── getallwxss.js

├── initAppConfig.js

├── initAppServiceJs.js

├── pack.js

├── unpack.js

└── upload.js //打包上傳

build會調用trans的方法進行轉換,

上傳的配置stores/projectStores.js

projectStores.Setting.MaxCodeSize,限制上傳大小為5M

trans

├── transManager.js

├── transConfigToPf.js

├── transWxmlToHtml.js

├── transWxmlToJs.js

└── transWxssToCss.js

1、transManager

require其他4個js,傳回最後替換的結果getResponse

2、transConfigToPf

Pf 是指 pageFrame,2、transConfigToPf 替換或删除模闆 tpl/pageFrameTpl.js 裡面的注釋

var __webviewId__;

3、transWxmlToHtml、transWxmlToJs、transWxssToCss判斷page目錄下是否存在對應的檔案,存在就執行轉換方法,transConfigToPf中用對應檔案連結替換掉對應的注釋标簽。

轉換wxml中的自定義tag為virtual_dom

微信開發者工具項目wap.php,微信web開發者工具

轉換wxss為css

其他

wx小程式隻能在工具内調試,而且不支援熱更

習慣了其他的編輯器,用着提供的工具并不好用(不能定義主題,快捷鍵…當然不用就是了)