Jak możemy lub możemy używać modułów node poprzez npm z Meteorem?

Jak możemy lub możemy używać modułów węzła poprzez npm z Meteor ?

A może to coś, co będzie zależne od opakowania API?

A może jest przepisana metoda, która jest zalecana?

Author: Peter Mortensen, 2012-04-16

6 answers

Meteor 1.3, wydany 28 marca 2016 roku, zapewnia aplikacjom pełną obsługę modułów ES6 (ES2015) i gotową obsługę NPM. Aplikacje i pakiety mogą teraz ładować Moduły NPM bezpośrednio i łatwo na kliencie i na serwerze.

Jeśli możesz użyć 1.3, sprawdź http://guide.meteor.com/using-packages.html#installing-npm .

Na przykład, aby użyć chwili.js:

meteor npm install --save moment

Następnie w kodzie:

import moment from 'moment';

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

Jeśli potrzebujesz użyć starszego wersja Meteor, przeczytaj resztę Odpowiedzi poniżej.


Pre-Meteor 1.3:

Od wersji 0.6.0 Meteor integruje się bezpośrednio z modułami NPM za pomocą zewnętrznego pakietu. Na przykład, aby użyć modułu Jak ws,

    W przypadku instalacji lokalnych, zobacz to )
  1. W pliku sever JavaScript,

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

Aby użyć modułu węzła rdzenia, wystarczy wykonać odpowiednie Npm.require() wywołanie, np. var Readable = Npm.require('stream').Readable.


Możesz użyć dowolnego z ponad 230 000 modułów NPM bezpośrednio z Meteorem dzięki pakietowi npm opracowanemu przez Arunoda.

Możesz również zdefiniować zależności od pakietów Npm z inteligentnych pakietów - z początkowego ogłoszenia obsługi npm:

Twój inteligentny pakiet może teraz definiować zależności bezpośrednio, dodając wywołanie do Npm.depends w package.js:

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

Wszystko to działa dobrze z hot code reload, tak jak reszta meteoru. Po wprowadzeniu zmian, bundler automatycznie pobierze brakujące pakiety npm i ponownie przypisze jego zależności.

Aby użyć modułu NPM w kodzie serwera, użyj Npm.require, tak jak normalnie używasz zwykłego require. W szczególności __meteor_bootstrap__.require został wyeliminowany, a wszystkie jego zastosowania zostały przekonwertowane na Npm.require.

Istnieje mały przykład użycia modułu NPM w Twojej aplikacji.

 45
Author: Dan Dascalescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:29:12

Zauważ, że ta odpowiedź dotyczy wersji Meteor sprzed 0.6.0, która została wydana w kwietniu 2013 roku i dodana bezpośrednia integracja npm

Zainstaluj moduły tak, jak normalnie przez npm, a następnie użyj

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

Załaduj dowolne moduły

 21
Author: Raynos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-25 11:25:17

Zrobiłem kompletny zapis na ten temat na Meteorpedii:

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

Artykuł opisuje jak używać npm zarówno w aplikacji i / lub pakietach, jak i typowe wzorce do pakowania regularnych wywołań zwrotnych i wywołań zwrotnych emmittera zdarzeń, aby działały poprawnie w Meteorze i włóknach, i zawiera odniesienia do asynchronicznych narzędzi Arunoda i dodatkowych zasobów.

 6
Author: gadicc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-24 05:15:32

Możesz użyć Meteor npm pakiet

meteor add meteorhacks:npm

Następnie utwórz plik packages.json w katalogu głównym projektu z informacjami o module npm.

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

Wtedy tak proste jak (po stronie serwera)

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

Więc wystarczy użyć Meteor.npmRequire zamiast require

 6
Author: Akshat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-04 00:31:17

Napisałem Gist jak to zrobić od Meteor 0.6.5, Jak dodać węzeł.js npms do Twojego Meteora.projekt js.

 1
Author: kenyee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-24 22:28:19

Używam takiego skryptu {[2] } który ładnie instaluje wszystkie węzeł.JS zależności. Zachowuje się podobnie do oficjalnego wsparcia w gałęzi Meteor engine (instaluje zależności w czasie wykonywania), ale obsługuje również instalację z repozytoriów Git i podobnych gadżetów.

 -1
Author: Mitar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-24 22:29:45