Come possiamo o possiamo usare i moduli di nodo via npm con Meteor?

Come possiamo o possiamo usare i moduli di nodo via npm con Meteor ?

O è qualcosa che dipenderà dall’API di packaging?

O c’è un metodo prescritto che è raccomandato?

Meteor 1.3 , rilasciato il 28 marzo 2016, offre alle app il supporto completo per moduli ES6 (ES2015) e supporto NPM pronto all’uso. App e pacchetti ora possono caricare i moduli NPM direttamente e facilmente sul client e sul server.

Se è ansible utilizzare 1.3, quindi controllare http://guide.meteor.com/using-packages.html#installing-npm .

Ad esempio, per utilizzare moment.js:

meteor npm install --save moment 

Quindi nel tuo codice:

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

Se hai bisogno di usare una versione precedente di Meteor, leggi il resto della risposta qui sotto.


Pre-Meteor 1.3 :

Dalla v0.6.0, Meteor si integra direttamente con i moduli NPM con l’aiuto di un pacchetto di terze parti. Ad esempio, per usare un modulo come ws ,

  1. Esegui sudo npm install -g ws (o per installazioni locali, vedi questo )
  2. Nel tuo file JavaScript sever,

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

Per utilizzare un modulo Nodo di base, effettuare semplicemente la chiamata Npm.require() corrispondente, ad es. var Readable = Npm.require('stream').Readable .


Puoi utilizzare uno qualsiasi degli oltre 230.000 moduli NPM direttamente con Meteor grazie al pacchetto NPM sviluppato da Arunoda.

Puoi anche definire le dipendenze dai pacchetti Npm dai pacchetti intelligenti – dall’annuncio iniziale del supporto npm:

Il tuo pacchetto intelligente ora può definire direttamente le dipendenze, aggiungendo una chiamata a Npm.depends in package.js :

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

Tutto ciò funziona bene con il caricamento di hot code, proprio come il resto di Meteor. Quando apporti delle modifiche, il bundler scaricherà automaticamente i pacchetti mancanti di npm e reinserirà le sue dipendenze.

Per utilizzare un modulo NPM all’interno del codice server, utilizzare Npm.require come normalmente si require . In particolare, __meteor_bootstrap__.require è stato eliminato e tutti i suoi usi sono stati convertiti in Npm.require .

C’è un piccolo esempio di utilizzo di un modulo NPM nella tua applicazione .

Si noti che questa risposta si applica alle versioni di Meteor precedenti alla 0.6.0, che è stata rilasciata nell’aprile 2013 e ha aggiunto l’integrazione diretta di npm

Installa i moduli come faresti normalmente con npm e poi npm

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

Carica tutti i moduli che desideri

Ho fatto un resoconto completo su questo su Meteorpedia:

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

L’articolo spiega come utilizzare npm in entrambe le app e / o pacchetti e modelli comuni per il wrapping di callback regolari e callback di emmitter di eventi per funzionare correttamente in Meteor e Fibers, e include i riferimenti alle utility asincrone di Arunoda e alle risorse aggiuntive.

Potresti usare il pacchetto Meteor Npm

 meteor add meteorhacks:npm 

Quindi creare un file packages.json nella directory principale del progetto con le informazioni del modulo NPM.

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

Quindi semplice come (lato server)

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

Quindi usi Meteor.npmRequire invece di require

Ho scritto un Gist su come farlo a partire da Meteor 0.6.5, Come aggiungere Node.js npms al tuo progetto Meteor.js .

Sto usando uno script che installa tutte le dipendenze Node.js. Si comporta in modo simile al supporto ufficiale nel ramo del motore Meteor (installa le dipendenze in fase di runtime), ma supporta anche l’installazione da repository Git e altri accessori simili.