web-dev-qa-db-fra.com

Comment pouvons-nous ou pouvons-nous utiliser les modules de nœuds via npm avec Meteor?

Comment pouvons-nous ou pouvons-nous utiliser les modules de nœuds via npm avec Meteor ?

Ou est-ce quelque chose qui dépendra de l'emballage API ?

Ou existe-t-il une méthode prescrite qui est recommandée?

47
Steeve Cannon

Meteor 1. , publié le 28 mars 2016, offre aux applications une prise en charge complète des modules ES6 (ES2015) et une prise en charge NPM prête à l'emploi. Les applications et les packages peuvent désormais charger les modules NPM directement et facilement sur le client et sur le serveur.

Si vous pouvez utiliser 1.3, vérifiez alors http://guide.meteor.com/using-packages.html#installing-npm .

Par exemple, pour utiliser moment.js:

meteor npm install --save moment

Puis dans votre code:

import moment from 'moment';

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

Si vous devez utiliser une ancienne version de Meteor, lisez le reste de la réponse ci-dessous.


Pré-Meteor 1.3 :

Depuis v0.6.0, Meteor s'intègre directement avec les modules NPM à l'aide d'un package tiers. Par exemple, pour utiliser un module comme ws ,

  1. Exécutez Sudo npm install -g ws (Ou pour les installations locales, voir this )
  2. Dans votre fichier JavaScript de serveur,

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

Pour utiliser un module de base Node, il suffit de faire l'appel Npm.require() correspondant, par exemple var Readable = Npm.require('stream').Readable.


Vous pouvez utiliser n'importe lequel des plus de 230 000 modules NPM directement avec Meteor grâce au package NPM développé par Arunoda.

Vous pouvez également définir des dépendances sur les packages Npm à partir de packages intelligents - à partir de l'annonce initiale du support npm:

Votre package intelligent peut désormais définir directement les dépendances, en ajoutant un appel à Npm.depends Dans package.js:

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

Tout cela fonctionne bien avec le rechargement de code à chaud, tout comme le reste de Meteor. Lorsque vous apportez des modifications, le bundle télécharge automatiquement les packages npm manquants et réépingle ses dépendances.

Pour utiliser un module NPM dans le code du serveur, utilisez Npm.require Comme vous utiliseriez normalement plain require. Notamment, __meteor_bootstrap__.require A été éliminé et toutes ses utilisations ont été converties en Npm.require.

Il y a n petit exemple d'utilisation d'un module NPM dans votre application .

45
Dan Dascalescu

Notez que cette réponse s'applique aux versions de Meteor antérieures à 0.6.0, qui ont été publiées en avril 2013 et ont ajouté une intégration directe npm

Installez les modules comme vous le feriez normalement via npm, puis utilisez

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

Chargez tous les modules que vous souhaitez

21
Raynos

J'ai fait un article complet à ce sujet sur Meteorpedia:

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

L'article explique comment utiliser npm dans votre application et/ou vos packages, et les modèles courants pour encapsuler les rappels réguliers et les rappels des émetteurs d'événements pour fonctionner correctement dans Meteor et Fibers, et inclure des références aux utilitaires asynchrones d'Arunoda et à des ressources supplémentaires.

6
gadicc

Vous pouvez utiliser le package Meteor Npm

meteor add meteorhacks:npm

Créez ensuite un packages.json fichier dans le répertoire racine de votre projet avec les informations du module NPM.

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

Alors aussi simple que (côté serveur)

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

Vous utilisez donc simplement Meteor.npmRequire au lieu de require

6
Akshat

J'ai écrit un Gist sur la façon de le faire à partir de Meteor 0.6.5, Comment ajouter des npms Node.js à votre projet Meteor.js.

1
kenyee