2012-04-15 10 views

Respuesta

45

Meteor 1.3, lanzado el 28 de marzo de 2016, brinda a las aplicaciones compatibilidad total con los módulos ES6 (ES2015) y compatibilidad con NPM de fábrica. Las aplicaciones y paquetes ahora pueden cargar módulos de NPM directa y fácilmente en el cliente y en el servidor.

Si puede usar 1.3, marque http://guide.meteor.com/using-packages.html#installing-npm.

Por ejemplo, para utilizar moment.js:

meteor npm install --save moment 

Luego, en su código:

import moment from 'moment'; 

// this is equivalent to the standard node require: 
const moment = require('moment'); 

Si es necesario utilizar una versión anterior del Meteor, leer el resto de la respuesta a continuación .


Pre-Meteor 1.3:

Since v0.6.0, Meteor integrates directly with NPM modules con la ayuda de un paquete de tercera parte. Por ejemplo, para utilizar un módulo como ws,

  1. Run sudo npm install -g ws (o para las instalaciones locales, ver this)
  2. En su Sever archivo JavaScript,

    var Websocket = Npm.require('ws'); 
    var myws = new Websocket('url'); 
    

Para utilizar una módulo Core Node, solo realice la llamada correspondiente Npm.require(), por ejemplo var Readable = Npm.require('stream').Readable.


Puede utilizar cualquiera de los más de 230,000 NPM modules directamente con Meteor gracias a la NPM package desarrollado por Arunoda.

También puede definir las dependencias de paquetes NPM de paquetes inteligentes - desde the initial announcement de apoyo NPM:

Su paquete inteligente ahora puede definir dependencias directamente, mediante la adición de una llamada a Npm.depends en package.js:

Npm.depends({ 
    "awssum": "0.12.2", 
    "underscore.string": "2.3.1" 
}); 

Todo esto funciona bien con la recarga de código caliente, al igual que el resto de Meteor. Cuando realice cambios, el paquete descargará automáticamente los paquetes npm faltantes y volverá a fijar sus dependencias.

Para usar un módulo NPM dentro del código del servidor, use Npm.require como lo haría normalmente con require. Notablemente, __meteor_bootstrap__.require ha sido eliminado y todos sus usos se han convertido a Npm.require.

Hay a small example of using an NPM module in your application.

+0

con su edición ¿quiere decir 'package.js'? – Akshat

+0

¿Alguna idea de cuándo se lanzará 0.6 para Windows? – rickyduck

+2

@Akshat: correcto, actualizado. –

21

Tenga en cuenta que esta respuesta se aplica a las versiones de meteoros antes de 0.6.0, que fue lanzado en abril de 2013 y ha añadido directa npm integración

instalar módulos como lo haría normalmente a través npm y luego utilice

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

de carga de cualquier módulo que quieren

+0

qué los que entran por el servidor Meteor.startup? y gracias –

+0

@SteeveCannon va en una declaración de servidor si va a fallar en el cliente – Raynos

+0

Gracias agraciado muy apreciado –

-1

Estoy usando such a script que instalan muy bien todas las dependencias Node.js. Se comporta de forma similar al soporte oficial en la rama del motor Meteor (instala dependencias en el tiempo de ejecución), pero también admite la instalación de repositorios Git y artículos similares.

+3

Meteor 0.6.0 reemplaza la necesidad de tales scripts. Ver la respuesta de Dan. – avital

6

lo hice un completo reportaje sobre esto en Meteorpedia:

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

El artículo se explica cómo utilizar la NGP, tanto en su aplicación y/o paquetes, y los patrones comunes para envolver las devoluciones de llamada regulares y eventos las devoluciones de llamada de emmitter para que funcionen correctamente en Meteor and Fibers, y las referencias include a las utilidades asincrónicas de Arunoda y recursos adicionales.

+0

sí, tenías razón. fijo. Gracias. – gadicc

+0

"NPM en su aplicación" punto 3. var Github = Meteor.require ('github'); ¿No debería ser Meteor.npmRequire (...)? –

6

podría utilizar el paquete de Meteor Npm

meteor add meteorhacks:npm 

A continuación, crear un archivo packages.json en el directorio raíz de su proyecto con la información del módulo de la NGP.

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

Entonces tan simple como (lado del servidor)

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

Por lo que sólo tiene que utilizar Meteor.npmRequire en lugar de require

+1

ese paquete es exagerado simplemente por usar módulos npm. – MurWade

+2

@MurWade es la forma más fácil de hacerlo. La única otra forma es hacer tu propio paquete, que es excesivo. Tampoco recomiendo usar 'npm install -g' como en la respuesta de Dan porque la aplicación no funcionará correctamente cuando se incluye/implementa. De esta manera lo tiene instalado cuando está empaquetado también – Akshat

Cuestiones relacionadas