2013-08-20 2 views
20

Я пытаюсь запустить локальный пакет на Meteor.Установка локального пакета на Meteor

У меня есть правильный package.js, есть smart.json, и он находится в каталоге my/packages в моем проекте Meteor. Smart.json в моем проекте выглядит следующим образом:

{ 
    "packages": { 
     "router": {}, 
     "userErrors": { 
      "path": "/home/user/Documents/project/packages/userErrors" 
     } 
    } 
} 

И я использую api.add_files и все правильно. Код работает нормально, когда я вынимаю его из папки пакетов. Есть ли что-то, что мне не хватает, чтобы запустить этот пакет? Я бегу Метеор с командой mrt.

ответ

27

пытается поместить свои файлы в каталоге «пакеты» ваше приложение и выполнить: метеора добавить [имя пакета]

+0

Nice! Различие между «mrt» и «meteor» - это то, что меня отбрасывало. – Xiv

+0

на самом деле mrt [метеорит] (https://github.com/oortcloud/meteorite), отдельный инструмент от метеора для управления версиями и пакетами. –

+0

Интересно, что система пакетов между метеор и мрт, кажется, полностью независима. Кажется, есть избыточность нет? – Xiv

30

Meteor от 0,9 не имеет «пакеты» каталога по умолчанию, но будет по-прежнему используйте его для локальных пакетов. Создайте его, если он не существует.

cd <your-app> 
mkdir packages 

Ваш локально разработанный пакет должен находиться внутри этой папки. Конечно, вы можете просто создать символическую ссылку. Вы можете сделать это самостоятельно с ln -s или воспользоваться функцией MRT:

mrt link-package /path/to/<your-package> 

Пожалуйста, обратите внимание, если вы предоставите относительный путь, то это должно быть относительно каталога пакетов, а не по отношению к вашему текущему местоположению. Таким образом, вы, возможно, захотите вначале cd в каталог пакетов, чтобы избежать путаницы.

Наконец, добавьте пакет:

meteor add <your-package> 

ВАЖНО: <your-package> должно быть название описания внутри package.js. Имя папки/символической ссылки не относится к этой процедуре.

Package.describe({ 
    name: "<your-package>" 
}); 

Если ваш локальный пакет имеет то же имя, что и пакет, зарегистрированный в Интернете, будет использоваться ваша местная версия.

2

машины: OSX 10.10.4, Метеора 1.1.0.3, Bash 3.2.57 (1) -релиз

1.Create местного метеор пакетов пакетов и примеров.

mkdir ~/.meteor_local_packages && cd $_ && meteor create --package user:package-name 

2. Проверьте версию набора для 0.0.1, по крайней мере

cat ~/.meteor_local_packages/package-name/package.js | grep version: 

3.Point метеорной локальные пакеты

echo 'export PACKAGE_DIRS=~/.meteor_local_packages' >> ~/.bash_profile && source ~/.bash_profile 

4.Go вашему метеорного проекта реж

meteor add user:package-name 

5.Показать список

meteor list | grep user:package-name 
1

Как Xiv предложил,
Скопируйте пакет в папку пакетов (создать «пакеты» папку внутри корневой директории вашего приложения).
ли

meteor add <package name>

(помните: имя пакета не имя папки указано в package.js внутри упаковки)

Смежные вопросы