47

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

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

还是有推荐的规定方法?

4

6 回答 6

46

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

  1. 运行sudo npm install -g ws(或对于本地安装,请参阅
  2. 在您的服务器 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.

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

于 2013-03-12T01:06:06.543 回答
21

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

像往常一样安装模块npm,然后使用

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

加载您想要的任何模块

于 2012-04-15T22:07:38.607 回答
6

我在 Meteorpedia 上写了一篇完整的文章:

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

本文介绍了如何在您的应用程序和/或包中使用 npm,以及包装常规回调和事件发射器回调以在 Meteor 和 Fibers 中正常工作的常见模式,并包括对 Arunoda 的 async-utilities 和其他资源的引用。

于 2014-03-24T05:15:32.413 回答
6

你可以使用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

于 2014-08-02T11:34:45.403 回答
1

我写了一篇关于如何从 Meteor 0.6.5 开始执行此操作的 Gist,如何将 Node.js npms 添加到您的 Meteor.js 项目中。

于 2013-08-22T13:35:07.957 回答
-1

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

于 2013-03-19T00:52:45.797 回答