我们如何或者可以通过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
这样的模块,
- 运行
sudo npm install -g ws
(或者对于本地安装,看到这个 ) -
在你严谨的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仓库和类似的东西安装。