Поскольку я готовился и предвидел появление Метеора 1.3, я немного зациклился на том, как именно включать внешние пакеты в код моего приложения. В частности, мне нужно было выставить переменные, которые были экспортированы из пакетов Atmosphere. Я не смог найти централизованное место, в котором бы определялись все различные способы запуска чужого кода в вашем приложении, поэтому я решил сделать это сам.
Есть четыре возможных места для включения модулей; Пакеты Meteor Core, Пакеты атмосферы, Пакеты NPM и локальные файлы.
Пакеты ядра метеора
Глобальные переменные, которые раньше были автоматически доступны для всего кода вашего приложения, теперь импортируются из «meteor/[package-name]».
import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo';
Атмосферные пакеты
Сначала вы загружаете пакет из Atmosphere, используя знакомую команду meteor add.
$ meteor add kadira:flow-router
Это устанавливает пакет локально.
Затем импортируйте полное имя пакета (включая дескриптор сопровождающего) в том же пространстве имен «meteor/».
// client_route.js import { FlowRouter } from 'meteor/kadira:flow-router';
Здесь фигурные скобки необходимы для правильной деструктуризации экспорта пакета. По сути, каждый раз, когда пакет вызывает api.export в своем package.js, он создает новое свойство экспортируемого объекта.
NPM-пакеты
Как и в случае с пакетами Atmosphere, вы сначала загружаете пакеты NPM с помощью npm install из командной строки.
Если у вас еще нет файла package.json в корне вашего приложения…
$ npm init
Следуйте инструкциям, затем:
$ npm install --save ramda
Теперь потенциально есть два способа импортировать это в код вашего приложения; с фигурными скобками или без них.
import R from 'ramda'; import { curry } from 'ramda';
Без фигурных скобок вы получите из модуля экспорт по умолчанию. С помощью фигурных скобок будет получен именованный экспорт из модуля.
Локальные файлы
Наконец, вы можете импортировать файлы из кода вашего собственного приложения, используя относительные пути к файлам.
// utils.js export const add = (a, b) => a + b; // src.js import { add } from './utils.js'; console.log(add(1, 2));