Поскольку я готовился и предвидел появление Метеора 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));