Ответ 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 в приложении.