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

Javascript 我们如何或可以通过Meteor的npm使用节点模块?,javascript,node.js,npm,meteor,Javascript,Node.js,Npm,Meteor,我们如何或可以通过npm使用节点模块 或者这取决于包装 或者是否有推荐的规定方法 请注意,此答案适用于Meteor 0.6.0之前的版本,该版本于2013年4月发布,并添加了直接npm集成 通过npm安装模块,然后使用 var require = __meteor_bootstrap__.require, pd = require("pd"), after = require("after") // etc 加载您想要的任何模块 ,于2016年3月28日发布,为应用程序提供完整

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

或者这取决于包装

或者是否有推荐的规定方法

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

通过
npm
安装模块,然后使用

var require = __meteor_bootstrap__.require,
    pd = require("pd"),
    after = require("after") // etc
加载您想要的任何模块

,于2016年3月28日发布,为应用程序提供完整的ES6(ES2015)模块支持和开箱即用的NPM支持。应用程序和软件包现在可以直接轻松地在客户端和服务器上加载NPM模块

如果可以使用1.3,请检查

例如,要使用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之前的版本

在第三方软件包的帮助下。例如,要使用如下模块:

  • 运行
    sudo npm安装-g ws
    (或本地安装,请参阅)
  • 在服务器JavaScript文件中

    var Websocket = Npm.require('ws');
    var myws = new Websocket('url');
    
  • 要使用核心节点模块,只需进行相应的
    Npm.require()
    调用,例如
    var Readable=Npm.require('stream')。Readable


    多亏了阿鲁诺达开发的Meteor,你可以直接使用任何一款

    您还可以从智能软件包定义对Npm软件包的依赖关系-来自Npm支持:

    通过在
    package.js
    中添加对
    Npm.dependens
    的调用,您的智能包现在可以直接定义依赖项:

    Npm.depends({
      "awssum": "0.12.2",
      "underscore.string": "2.3.1"
    });
    
    所有这些都可以很好地与热代码重新加载一起工作,就像Meteor的其余部分一样。当您进行更改时,捆绑程序将自动下载丢失的npm包并重新固定其依赖项

    要在服务器代码中使用NPM模块,请像通常使用普通的
    require
    一样使用
    NPM.require
    。值得注意的是,
    \uuuuuuuuuuuuuuuuMeteor\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu


    有。

    我正在使用它很好地安装所有依赖项。它的行为类似于Meteor引擎分支中的官方支持(它在运行时安装依赖项),但它也支持从存储库和类似的东西进行安装。

    从Meteor 0.6.5开始,我写了一篇关于如何做到这一点的要点。

    我在Meteopedia上做了一篇完整的文章:

    本文介绍了如何在应用程序和/或软件包中使用npm,以及包装常规回调和event emmitter回调以在Meteor和Fibers中正常工作的常见模式,并包括Arunoda的异步实用程序和其他资源的参考。

    您可以使用该软件包

    然后在项目的根目录中创建一个包含NPM模块信息的
    packages.json
    文件

    {
        "redis": "0.8.2",
         "github": "0.1.8"
    }
    
    然后简单到(服务器端)


    因此,您只需使用
    Meteor.npmRequire
    而不是
    require

    @SteeveCannon,因为它会在客户端失败。当您使用npm安装模块时,请检查npm版本是否为1.0或更高,并进行本地安装(npm安装模块名称)。以及如何在客户端上要求模块?只是想得到working@Nico使用browserify或将模块破解成单个js文件它似乎在可传递依赖项上崩溃-例如,尝试使用aws库。有什么想法吗?Meteor 0.6.0取代了对此类脚本的需要。请看Dan的回答。你知道0.6什么时候会在windows上发布吗?你能澄清一下Npm.require(…)与http或url等nodejs核心模块一起工作吗?如果您有答案,可以在答案中添加这些信息。@MikeGraf:添加了一个使用核心模块的示例。@rickyduck:现在非常有用,如果不是今天,几天后就会正式发布。@DanDascalescu终于!仅仅为了简单地使用npm模块,这个软件包就太过分了。@MurWade这是最简单的方法。唯一的另一种方法是制作自己的软件包,这太过分了。我也不建议像Dan的回答那样使用
    npm install-g
    ,因为捆绑/部署应用程序时无法正常工作。这样,当它捆绑在“应用程序中的NPM”第3点时,它就可以安装了。var Github=Meteor.require('Github');是否应该是Meteor.npmRequire(…)?
    {
        "redis": "0.8.2",
         "github": "0.1.8"
    }
    
    var github = Meteor.npmRequire("github");
    var redis = Meteor.npmRequire("redis");