Как мы или можем использовать модули node через npm с помощью Meteor?

Как мы или можем использовать модули node через npm с Meteor?

Или это то, что будет зависеть от упаковки API?

Или существует рекомендуемый метод?

Ответ 1

Meteor 1.3, выпущенный 28 марта 2016 года, предоставляет приложениям полную поддержку модулей 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');

Если вам нужно использовать более старую версию Meteor, прочитайте оставшуюся часть ответа ниже.


Pre-Meteor 1.3:

Начиная с v0.6.0, Meteor напрямую интегрируется с модулями NPM с помощью стороннего пакета. Например, чтобы использовать модуль, например ws,

  • Запустите sudo npm install -g ws (или для локальной установки, см. this)
  • В вашем файле JavaScript на сервере

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

Чтобы использовать основной модуль Node, просто сделайте соответствующий вызов Npm.require(), например. var Readable = Npm.require('stream').Readable.


Вы можете использовать любой из более чем 230 000 модулей NPM непосредственно с помощью Meteor благодаря пакет NPM, разработанный Arunoda.

Вы также можете определить зависимости от пакетов Npm от интеллектуальных пакетов - от начального объявления поддержки npm:

Теперь ваш смарт-пакет может напрямую определять зависимости, добавив вызов Npm.depends в package.js:

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

Все это хорошо работает с перезагрузкой горячим кодом, как и остальная часть Meteor. Когда вы вносите изменения, поставщик автоматически загружает отсутствующие пакеты npm и повторно привязывает свои зависимости.

Чтобы использовать модуль NPM в коде сервера, используйте Npm.require, как обычно вы используете plain require. Примечательно, что __meteor_bootstrap__.require был устранен, и все его применения были преобразованы в Npm.require.

Существует небольшой пример использования модуля NPM в приложении.

Ответ 2

Обратите внимание, что этот ответ относится к версиям Meteor до 0.6.0, который был выпущен в апреле 2013 года, и добавил прямую интеграцию npm

Установите модули, как обычно, через npm, а затем используйте

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

Загрузите любые модули, которые вы хотите

Ответ 3

Я сделал полную запись об этом на Meteorpedia:

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

В статье описывается, как использовать npm в вашем приложении и/или пакетах, а также общие шаблоны для обхода регулярных обратных вызовов и обратных вызовов emmitter для правильной работы в Meteor и Fibers и включают ссылки на асинхронные утилиты Arunoda и дополнительные ресурсы.

Ответ 4

Вы можете использовать пакет Meteor Npm

meteor add meteorhacks:npm

Затем создайте файл packages.json в корневом каталоге проекта с информацией о модуле NPM.

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

Тогда просто (сторона сервера)

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

Итак, вы просто используете Meteor.npmRequire вместо require

Ответ 6

Я использую такой script, который прекрасно устанавливает все Node.js. Он ведет себя аналогично официальной поддержке в ветке движка Meteor (он устанавливает зависимости во время выполнения), но также поддерживает установку из Git репозиториев и аналогичные лакомства.