Как мы или можем использовать модули node через npm с Meteor?
Или это то, что будет зависеть от упаковки API?
Или существует рекомендуемый метод?
Как мы или можем использовать модули node через npm с Meteor?
Или это то, что будет зависеть от упаковки API?
Или существует рекомендуемый метод?
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 в приложении.
Обратите внимание, что этот ответ относится к версиям Meteor до 0.6.0, который был выпущен в апреле 2013 года, и добавил прямую интеграцию
npm
Установите модули, как обычно, через npm
, а затем используйте
var require = __meteor_bootstrap__.require,
pd = require("pd"),
after = require("after") // etc
Загрузите любые модули, которые вы хотите
Я сделал полную запись об этом на Meteorpedia:
http://www.meteorpedia.com/read/npm
В статье описывается, как использовать npm в вашем приложении и/или пакетах, а также общие шаблоны для обхода регулярных обратных вызовов и обратных вызовов emmitter для правильной работы в Meteor и Fibers и включают ссылки на асинхронные утилиты Arunoda и дополнительные ресурсы.
Вы можете использовать пакет 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
Я написал "Gist" о том, как это сделать с Meteor 0.6.5, Как добавить Node.js npms к вашему проекту Meteor.js.
Я использую такой script, который прекрасно устанавливает все Node.js. Он ведет себя аналогично официальной поддержке в ветке движка Meteor (он устанавливает зависимости во время выполнения), но также поддерживает установку из Git репозиториев и аналогичные лакомства.