文章目录
基础知识学习
需要的一些基础知识:
nodejs的加载
模块怎么包装的
模块到底导出了什么
js中的两个添加属性的接口:
defineProperty实际是__defineGetter__的升级版,后者在高版本中即将废弃,以下是文档:
__defineGetter__文档
defineProperty文档
pomelo中到底包含了什么东西
使用pomelo首先需要导出pomelo对象,例如var pomelo = require(‘pomelo’);
可以看到最终调用的文件为node_modules/pomelo/index.js -> node_modules/pomelo/lib/pomelo.js
阅读源码可以发现最终导出一个对象: var Pomelo = module.exports = {};
同时发现在pomelo中还有直接读取文件载入的过程fs.readdirSync
这些是执行函数,所以在require时会直接执行
分析源码可知,会载入node_modules/pomelo/lib下的components, filters/handler, filters/rpc的所有js模块,并写入pomelo
最终分析出:
var pomelo = require('pomelo');
导出的对象结构如下:
pomelo = {
version: 版本字符串,</