我们如何或可以通过 npm 和Meteor使用节点模块?
或者那是依赖于包装API的东西?
还是有推荐的规定方法?
Meteor 1.3于 2016 年 3 月 28 日发布,为应用程序提供完整的 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,请阅读下面的其余答案。
流星前 1.3:
从 v0.6.0 开始,Meteor在 3rd 方包的帮助下直接与 NPM 模块集成。例如,要使用类似的模块ws
,
sudo npm install -g ws
(或对于本地安装,请参阅此)在您的服务器 JavaScript 文件中,
var Websocket = Npm.require('ws');
var myws = new Websocket('url');
要使用核心 Node 模块,只需进行相应的Npm.require()
调用,例如var Readable = Npm.require('stream').Readable
.
借助 Arunoda 开发的NPM 包,您可以直接将230,000 多个 NPM 模块中的任何一个与 Meteor 一起使用。
您还可以从智能包中定义对 Npm 包的依赖项 - 从npm 支持的初始公告中:
Npm.depends
您的智能包现在可以通过添加对in的调用直接定义依赖项package.js
:
Npm.depends({
"awssum": "0.12.2",
"underscore.string": "2.3.1"
});
所有这些都适用于热代码重新加载,就像 Meteor 的其余部分一样。当您进行更改时,捆绑器将自动下载丢失的 npm 包并重新固定其依赖项。
要在服务器代码中使用 NPM 模块,Npm.require
请像通常使用的那样使用 plain require
。值得注意的是,__meteor_bootstrap__.require
已被淘汰,其所有用途均已转换为Npm.require
.
请注意,此答案适用于 0.6.0 之前的 Meteor 版本,该版本于 2013 年 4 月发布并添加了直接
npm
集成
像往常一样安装模块npm
,然后使用
var require = __meteor_bootstrap__.require,
pd = require("pd"),
after = require("after") // etc
加载您想要的任何模块
我在 Meteorpedia 上写了一篇完整的文章:
http://www.meteorpedia.com/read/npm
本文介绍了如何在您的应用程序和/或包中使用 npm,以及包装常规回调和事件发射器回调以在 Meteor 和 Fibers 中正常工作的常见模式,并包括对 Arunoda 的 async-utilities 和其他资源的引用。
你可以使用Meteor Npm包
meteor add meteorhacks:npm
packages.json
然后在项目的根目录中创建一个包含 NPM 模块信息的文件。
{
"redis": "0.8.2",
"github": "0.1.8"
}
然后就像(服务器端)一样简单
var github = Meteor.npmRequire("github");
var redis = Meteor.npmRequire("redis");
所以你只需使用Meteor.npmRequire
而不是require
我写了一篇关于如何从 Meteor 0.6.5 开始执行此操作的 Gist,如何将 Node.js npms 添加到您的 Meteor.js 项目中。