我们如何或者可以通过npm与Meteor使用节点模块?

我们如何或者可以通过npm与Meteor使用节点模块?

或者是那些依赖于包装API的东西 ?

还是有一个build议的方法?

2016年3月28日发布的“ meteor1.3”为应用提供了完整的ES6(ES2015)模块支持和开箱即用的NPM支持。 应用程序和程序包现在可以直接轻松地在客户端和服务器上加载NPM模块。

如果您可以使用1.3,请检查http://guide.meteor.com/using-packages.html#installing-npm

例如,要使用moment.js:

meteor npm install --save moment 

然后在你的代码中:

 import moment from 'moment'; // this is equivalent to the standard node require: const moment = require('moment'); 

如果您需要使用Meteor的旧版本,请阅读下面的答案。


Pre-Meteor 1.3

自v0.6.0以来,Meteor借助第三方软件包直接与NPM模块集成 。 例如,要使用像ws这样的模块,

  1. 运行sudo npm install -g ws (或者对于本地安装,看到这个 )
  2. 在你严谨的JavaScript文件中,

     var Websocket = Npm.require('ws'); var myws = new Websocket('url'); 

要使用核心节点模块,只需进行相应的Npm.require()调用,例如var Readable = Npm.require('stream').Readable


由于Arunoda开发的NPM软件包,您可以直接使用meteor中超过230,000个NPM模块中的任何一个。

您还可以从智能包中定义Npm包的依赖关系 – 从npm支持的初始公告 :

现在,您的智能包可以直接定义依赖关系,方法是在package.js添加对Npm.depends的调用:

 Npm.depends({ "awssum": "0.12.2", "underscore.string": "2.3.1" }); 

所有这些与热代码重新加载都很好,就像Meteor的其余部分一样。 当您进行更改时,捆绑软件会自动下载缺less的npm软件包并重新定位其依赖关系。

要在服务器代码中使用NPM模块,请使用Npm.require正如您通常使用普通require 。 值得注意的是, __meteor_bootstrap__.require已经被淘汰,所有的用途都被转换为Npm.require

在您的应用程序中使用NPM模块有一个小例子 。

请注意,此答案适用于2013年4月发布的0.6.0之前的Meteor版本,并添加了直接npm集成

像通常那样通过npm安装模块,然后使用

 var require = __meteor_bootstrap__.require, pd = require("pd"), after = require("after") // etc 

加载你想要的任何模块

我在Meteorpedia上做了一个完整的文章:

http://www.meteorpedia.com/read/npm

本文将介绍如何在您的应用程序和/或包中使用npm,以及包含常规callback和事件发射器callback的常见模式,以便在Meteor和Fibers中正常工作,并包含对Arunodaasynchronous实用程序和其他资源的引用。

你可以使用Meteor Npm包

 meteor add meteorhacks:npm 

然后使用NPM模块的信息在项目的根目录中创build一个packages.json文件。

 { "redis": "0.8.2", "github": "0.1.8" } 

然后像(服务器端)一样简单

 var github = Meteor.npmRequire("github"); var redis = Meteor.npmRequire("redis"); 

所以你只require使用Meteor.npmRequire而不是require

我写了一个Gist如何做到这一点从meteor0.6.5, 如何添加Node.js npms到你的Meteor.js项目

我正在使用这样的脚本 ,很好地安装所有的Node.js依赖。 它的行为类似于Meteor引擎分支(它在运行时安装依赖)的官方支持,但是它也支持从Git仓库和类似的东西安装。