这篇文章解决我一个很大的麻烦。因此翻译过来,希望能帮助大家。可能不会按照原文一动不动的翻译,我会加入我的理解来写。因为我的英文水平不是很好。

原文地址: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

(这里以第三方的包 jsdom为例)安装的jsdom,无法直接在Meteor通过Npm.require('jsdom')调用,这样会报错。meteor-npm比较完整的解决了meteor对第三方npm的调用。

大概译文如下:


Meteor- Npm的支持从Meteor 0.6版本开始。 它仅完成了Npm 包的访问。如果你需要在你的应用中用到类似 redisaws-sdkcolorswinston  的npm module ,那么不好意思,暂时不支持。

当然你可以自己把这些 Npm module 封装成 包的格式,不过 貌似比较困难。

解决方案来了

  

我可以欺骗一下Meteor ,并且现在可以完全在Meteor中访问Npm模块了。下面教你如果来做到这点,非常简单。


给你的应用增加NPM支持


第一种方式 是通过Meteorite 的包管理器来完成。

mrt add npm
d
如果你不想使用meteorite 那么可以使用Node的Npm包管理器来完成。

npm install -g meteor-npm //全局安装
meteor-npm #然后在你的应用的根目录下运行这个命令


它会自动在应用根目录的packages 文件下创建一个npm的包

这样你就可以使用npm的包管理器了。


创建Packages.json

在你的应用更目录下新建一个packages.json文件

在这个文件里面你可以定义你想要使用的npm 模块了。

如:

{
 "jsdom":"0.8.9",
 "d3":"xxxx",
   ....
}

写好这个后,运行meteor 。它会自动安装你需要的这些包。(注:这里不能确定是否会自动安装,因为我是先安装过了这些包的。如果没有自动安装,那么就需要自己通过npm install -g 来安装一下这些写进去的包了。)


使用

在Meteor里面使用它很简单:

//注意不是Npm.require()了 ,但是调用Node API的模块还是使用Npm.require("fs")之类的
var jsdom = Meteor.require("jsdom");


Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐