Meteor基于Node.js,可是却有本身的包管理系统(atmosphere)以及代码加载机制,且meteor是非异步的,这些都意味着,node.js包(npm package)和代码一般不能直接用于meteor程序。node
这里分享三种方法以在meteor中复用node.js包和代码。git
npm+async是复用npm包最便捷的方式。meteor程序添加npm包以后,即可以在packages.json中声明包依赖,在程序中经过Meteor.npmRequire来加载包。github
值得一提的是,因为大部分npm包都是异步调用的,而meteor是同步运行的,因此须要某种方法将异步调用转为同步调用。async就是这样一个meteor包,添加以后,经过Async.runSync方法即可以同步地调用异步方法。web
具体安装、使用方法以及更多介绍,请参考文档。npm
若是须要复用的代码仅仅是个别文件、函数、片断等,能够手工修改代码以适配meteor程序。json
须要注意到,node.js的每个文件都是一个模块,经过module.exports和require进行组织,可是在meteor中,每个文件都是会被自动加载的(具体顺序参考meteor文档),经过全局变量进行跨文件调用;meteor中不能直接加载npm包;meteor框架是同步运行的(非异步)。app
综上,适配代码的工做包括:框架
这种方法更复杂,可是也更进阶,不只能够封装npm包,也能封装任意node.js代码(固然须要修改、适配),更能建立新的meteor包。异步
建立meteor包的具体方法再也不赘述,参考以下:async
学会建立meteor包以后,只须要按照上述方法适配代码,并封装成meteor包,即可以方便地使用和分享了。
该项目规模很小,便于分析。原始代码在submail-sdk文件夹中,其他代码为对原始代码的适配和封装。