答案 0 :(得分:45)
2016年3月28日发布的Meteor 1.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 :
Since v0.6.0, Meteor integrates directly with NPM modules在第三方包的帮助下。例如,要使用ws
等模块,
sudo npm install -g ws
(或本地安装,请参阅this)在您的服务器JavaScript文件中
var Websocket = Npm.require('ws');
var myws = new Websocket('url');
要使用核心节点模块,只需拨打相应的Npm.require()
电话,例如var Readable = Npm.require('stream').Readable
。
由于Arunoda开发的230,000 NPM modules,您可以直接使用Me NPM package以上的任何一个。
您还可以从智能包中定义Npm包的依赖关系 - 来自npm支持的the initial announcement:
您的智能包现在可以通过在Npm.depends
中添加对package.js
的调用来直接定义依赖关系:
Npm.depends({
"awssum": "0.12.2",
"underscore.string": "2.3.1"
});
所有这些都适用于热代码重新加载,就像Meteor的其余部分一样。当您进行更改时,捆绑程序将自动下载缺少的npm软件包并重新锁定其依赖项。
要在服务器代码中使用NPM模块,请使用Npm.require
,因为您通常使用普通require
。值得注意的是,__meteor_bootstrap__.require
已被删除,其所有用途都已转换为Npm.require
。
有a small example of using an NPM module in your application。
答案 1 :(得分:21)
请注意,此答案适用于0.6.0之前的Meteor版本,该版本于2013年4月发布并添加了直接
npm
集成
像往常一样通过npm
安装模块,然后使用
var require = __meteor_bootstrap__.require,
pd = require("pd"),
after = require("after") // etc
加载您想要的任何模块
答案 2 :(得分:6)
我在Meteorpedia上做了一个完整的写作:
http://www.meteorpedia.com/read/npm
本文介绍了如何在应用程序和/或程序包中使用npm,以及包含常规回调和事件发送器回调的常用模式,以便在Meteor和Fibers中正常工作,并包含对Arunoda'的引用。 s async-utilities和其他资源。
答案 3 :(得分:6)
您可以使用Meteor Npm包
meteor add meteorhacks:npm
然后使用NPM模块的信息在项目的根目录中创建一个packages.json
文件。
{
"redis": "0.8.2",
"github": "0.1.8"
}
然后就像(服务器端)一样简单
var github = Meteor.npmRequire("github");
var redis = Meteor.npmRequire("redis");
因此,您只需使用Meteor.npmRequire
代替require
答案 4 :(得分:1)
我在Meteor 0.6.5, How to add Node.js npms to your Meteor.js project 上写了一篇关于如何做到这一点的要点。
答案 5 :(得分:-1)
我正在使用such a script,它可以很好地安装所有Node.js个依赖项。它的行为类似于Meteor引擎分支中的官方支持(它在运行时安装依赖项),但它也支持从Git存储库和类似的东西安装。