2012-04-15 67 views

回答

45

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'); 

如果您需要使用流星的旧版本,请阅读下面的回答其余。


预流星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'); 
    

要使用核心节点模块,只需拨打相应的Npm.require()即可,例如var Readable = Npm.require('stream').Readable


你可以使用任何超过230,000 NPM modules直接与流星感谢NPM package通过Arunoda开发。

你的智能包现在可以直接在package.js定义依赖,加入到Npm.depends一个电话:

Npm.depends({ 
    "awssum": "0.12.2", 
    "underscore.string": "2.3.1" 
}); 
从NPM支持 the initial announcement -

您还可以定义从智能包装NPM包依赖

所有这些与热代码重新加载都很好,就像Meteor的其余部分一样。当您进行更改时,打包程序会自动下载缺少的npm软件包并重新定位它的依赖关系。

要在服务器代码中使用NPM模块,请使用Npm.require,因为您通常会使用普通的require。值得注意的是,__meteor_bootstrap__.require已被淘汰,其所有用途已被转换为Npm.require

a small example of using an NPM module in your application

+0

与你的编辑你的意思是'package.js'? – Akshat 2013-04-05 07:11:35

+0

任何想法,当0.6将发布的Windows? – rickyduck 2013-04-11 15:21:17

+2

@Akshat:正确,更新。 – 2013-05-06 08:47:48

21

注意,这个答案适用于流星之前的版本0.6.0,这是在2013年4月发布,并加入直接npm整合

安装模块,您一般通过npm会,然后用

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

加载所有的模块,你想

+0

并在服务器Meteor.startup去?谢谢 – 2012-04-15 22:40:07

+0

@SteeveCannon它在一个if服务器语句中,因为它会在客户端上失败 – Raynos 2012-04-15 22:43:30

+0

非常感谢非常感谢 – 2012-04-15 22:56:10

-1

我使用的such a script很好地安装了所有Node.js依赖关系。它的行为类似于Meteor引擎分支的官方支持(它在运行时安装依赖关系),但它也支持从Git存储库和类似的好东西安装。

+3

流星0.6.0取代了这种脚本的需要。见丹的答案。 – avital 2013-04-08 22:17:55

6

我做了这对Meteorpedia一个完整的写了起来:

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

本文介绍如何使用NPM在这两个您的应用程序和/或包装,和普通模式包裹定期回调和事件Emmitter回调在Meteor和Fibers中正常工作,并包括对Arunoda的异步公用程序和附加资源的引用。

+0

是的,你是对的。固定。谢谢。 – gadicc 2015-02-22 11:15:52

+0

“NPM在您的应用程序中”第3点。 var Github = Meteor.require('github');它不应该是Meteor.npmRequire(...)吗? – 2015-12-24 07:29:13

6

您可以使用Meteor Npm

meteor add meteorhacks:npm 

然后创建一个packages.json文件在你的项目的根目录与新公共管理模块的信息。

{ 
    "redis": "0.8.2", 
    "github": "0.1.8" 
} 

如此的简单(服务器端)

var github = Meteor.npmRequire("github"); 
var redis = Meteor.npmRequire("redis"); 

所以,你只需要使用Meteor.npmRequire代替require

+1

该软件包仅仅是为了简单地使用npm模块而矫枉过正。 – MurWade 2014-12-05 06:46:58

+2

@MurWade它最简单的方法来做到这一点。唯一的另一种方法是制作自己的软件包,这是过分的。我也不建议在Dan的回答中使用'npm install -g',因为在捆绑/部署时应用程序无法正常工作。这种方式也将其捆绑安装 – Akshat 2015-01-12 07:33:04

相关问题