./Contents/Resources/app.nw
目录。package.json
对应起来,比如 name
、icon
、version
等。.
/ap
p/dist/components/setting/setting.js
,而用户设置的保存(包括后面要说的模拟器设备、网络等信息)是调用了 ./app/dist/stores/*.js
方法。./app/dist/common/menu/menu.js
,动作在 ./app/dist/common/actions/actions.js
,大家可以自行到代码中查看文件的 require
,再做进一步分析。./app/dist/config/DeviceModules.js
,网络配置在 ./app/dist/common/jssdk/osInfoSdk.js
。参照这些调试工具,我们自己弄一个自己的调试工具就很简单了。
只要在 ./app/dist/extensions
目录下新建一个文件夹,用
html/css/js
完成这个工具的功能,再将 devtools.html
这个工具引入chrome.devtools.panels.create()
。tpl
文件夹下是页面模板。
onlinevendor/wcc
在编译时把 WXML 文件转为 JS 文件,onlinevendor/wcsc
在编译时把 WXSS 文件转化为 JS,这也是编译包比代码库要大不少的重要原因。
trans
文件夹下有五个方法,其中 transConfigToPf
可以将配置转成 pageFrame
,trans/transWxmlToHtml
将 WXML 转成 DOM 树,再进一步用 WebView 渲染,trans/transWxssToCss
将 WXSS 转成 CSS,提供 View 层样式。
onlinevendor/WAService.js
提供了service 层几乎一切功能。
pageFrame
,对应的 transConfigToPf
主要用字符串替换的方式完成转换。$('*')
选择器,我们可以看到页面的 AppService 模板。WAService.js
是小程序页面运行的核心方法,主要有几大功能:内置的 report
方法定义
微信小程序 API
封装
WeixinJSBridge
封装
appServiceEngine
模块
总结
官方文档不一定和实际情况是对齐的,开发时碰到不一致的情况可以查阅源码,以此为准。
熟悉源码结构可以快速定位问题,提升开发效率,甚至给自己开发合适的 DevTool。
小程序可以认为是前端的一个子集,而且相对封闭,开发时会有各种约束,查阅源码可以有助于小程序的设计。
联系客服