这篇文章解决我一个很大的麻烦。因此翻译过来,希望能帮助大家。可能不会按照原文一动不动的翻译,我会加入我的理解来写。因为我的英文水平不是很好。
原文地址:http://meteorhacks.com/complete-npm-integration-for-meteor.html
相关github:https://github.com/arunoda/meteor-npm
先说一下这篇文章的大概内容,主要是解决了meteor中调用第三方(非Node的API)Module 的问题。因为通过
sudo npm install -g jsdom
大概译文如下:
Meteor- Npm的支持从Meteor 0.6版本开始。 它仅完成了Npm 包的访问。如果你需要在你的应用中用到类似 redis, aws-sdk, colors, winston 的npm module ,那么不好意思,暂时不支持。
当然你可以自己把这些 Npm module 封装成 包的格式,不过 貌似比较困难。
解决方案来了
我可以欺骗一下Meteor ,并且现在可以完全在Meteor中访问Npm模块了。下面教你如果来做到这点,非常简单。
给你的应用增加NPM支持
第一种方式 是通过Meteorite 的包管理器来完成。
mrt add npmd
npm install -g meteor-npm //全局安装 meteor-npm #然后在你的应用的根目录下运行这个命令
它会自动在应用根目录的packages 文件下创建一个npm的包
这样你就可以使用npm的包管理器了。
创建Packages.json
在你的应用更目录下新建一个packages.json文件
在这个文件里面你可以定义你想要使用的npm 模块了。
如:
{ "jsdom":"0.8.9", "d3":"xxxx", .... }
使用
在Meteor里面使用它很简单:
//注意不是Npm.require()了 ,但是调用Node API的模块还是使用Npm.require("fs")之类的 var jsdom = Meteor.require("jsdom");