2015-11-11 7 views
0

Я создаю приложение meteor, и я решил разделить его на пакеты, чтобы я мог контролировать порядок загрузки файлов. Однако многие пакеты имеют общие зависимости (другие внешние пакеты), такие как react или meteorhacks:flow-router. Я хочу создать основной пакет myapp:app со всеми этими зависимостями, что подразумевают другие пакеты в моем приложении.Пакет для агрегирования внешних пакетов в meteor.js

app Это package.js:

Package.describe({ 
    name: 'myapp:app', 
    version: '0.0.1' 
}); 


Package.onUse(function(api) { 
    api.versionsFrom('1.2.1'); 

    // All external packages that will be used by other local packages 
     api.use([ 
      'twbs:bootstrap', 
     ], 'client'); 

     api.use([ 
      'ecmascript', 
      'react', 
      'meteorhacks:flow-router' 
     ], ['client', 'server']); 
}); 

У меня есть пакет myapp:taskslist, подразумевающие myapp:app:

Package.describe({ 
    name: 'myapp:taskslist', 
    version: '0.0.1' 
}); 

Package.onUse(function(api) { 
    api.versionsFrom('1.2.1'); 

    api.imply(['myapp:app']); 

    api.addFiles([ 
     'client/tasksList.jsx', 
     'client/task.jsx', 
     'main.jsx' 
    ], ['client']); 
}); 

Однако это не работает. У меня есть ошибка No plugin known to handle file 'client/taskList.jsx', потому что myapp:tasksList, не имеет react плагин установлен. Не должно api.imply() доля react до myapp:tasksList упаковка? Какое хорошее решение для этой проблемы?

ответ

1

Чтобы ответить на ваш вопрос прямо, не imply не не подвергать react к myapp:tasksList

Вы должны думать об этом, как это:

IMPLY passes references OUT 
USE takes references IN 

Все подразумевают в myapp:tasksList делает, что позволяет независимо использует myapp:tasksList иметь доступ к myapp:app.

Для того, чтобы использовать myapp:app (и все ссылки это выставляет) в myapp:tasksList также необходимо добавить

api.use([ 
     'myapp:app', 
    ]); 

в myapp:tasksList

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

  • Нет связанных вопросов^_^