我们如何通过npm与Meteor一起使用节点模块?

时间:2012-04-15 20:51:22

标签: javascript node.js npm meteor

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

或者那件事取决于包装API

或者推荐使用规定的方法吗?

6 个答案:

答案 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等模块,

  1. 运行sudo npm install -g ws(或本地安装,请参阅this
  2. 在您的服务器JavaScript文件中

    var Websocket = Npm.require('ws');
    var myws = new Websocket('url');
    
  3. 要使用核心节点模块,只需拨打相应的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存储库和类似的东西安装。