Как настроить угольные двигатели?
Я создал автономный маршрутизируемый движок с ember-engines
0.4.0
, ember-cli
2.10.0
,
Я получаю эту ошибку, если я вызываю индексный маршрут двигателей (/thingy/
):
Assertion Failed: Asset manifest does not list any available bundles.
Потребление приложения router.js
:
this.mount('thingy-frontend', { as: 'thingy', path: 'thingy' });
Приложение Engine routes.js
:
this.route('index', { path: '/' });
Двигатель "установлен" через символическую ссылку в node_modules/
реж потребителя ember-cli
приложение. ( Смотри здесь почему).
Просто для забавы я попытался изменить маршруты, чтобы проверить, работает ли это...
Потребление приложения router.js
:
this.mount('thingy-frontend', { as: 'thingy' });
Приложение Engine routes.js
:
this.route('index', { path: 'new' });
Я звонил /thingy/new
и получил UnrecognizedURLError
, Альтернативно, если я называю корневой путь, я получаю Assertion Failed: Asset manifest does not list any available bundles.
Кроме того, если я ставлю console.log('...');
в двигателях index.js
Я не вижу никаких результатов. Похоже, он не загружен вообще.
Установка была основана на официальном README и официальных репозиториях.
Любая идея, как исправить эту установку Ember Engines?
Вы можете найти репозитории на GitHub:
- Движок: https://github.com/phortx/ember-engines-engine
- Использование приложения с README: https://github.com/phortx/ember-engines-app
3 ответа
Мы могли бы решить проблему. Было несколько проблем, и я поделюсь с вами тем, что мы сделали:
1. Добавьте ember-engine как зависимость (а не просто dev-зависимость)
Вы должны добавитьember-engines
как зависимость в package.json
как для приложения, так и для двигателя. Таким образом, мы меняем package.json
чтобы:
"dependencies": {
"ember-cli-htmlbars": "^1.0.10",
"ember-cli-babel": "^5.1.7",
"ember-data": "^2.10.0",
"ember-engines": "0.4.0"
}
Не забудь npm install
,
2. Добавьте фактический движок в package.json
Даже если он не публичный и не содержит символических ссылок в node_modules, как в нашем случае, вы должны добавить движок к package.json
,
В нашем случае это было "thingy-frontend": "*"
,
Не забудь npm install
,
3. Проверьте имя символической ссылки
В нашем случае символическая ссылка имела имя репозитория, а не реальное имя двигателя. Это не сработает. Мы изменили имя символической ссылки на thingy-frontend
(это название от двигателей index.js
).
4. Используйте правильный распознаватель
Вы должны убедиться, что оба в addon/engine.js
и app/resolver.js
использовать ember-resolver
,
5. Не удалось загрузить манифест актива.
Это, вероятно, ошибка в ember-engines
, См. Проблему для получения более подробной информации: https://github.com/ember-engines/ember-engines/issues/282
Вы можете обойти эту проблему, добавив вручную <meta />
-Tag к <head>
(см. ссылку на выпуск GitHub выше)
Большое спасибо Майклу Дональдсону!
Я не могу найти ссылку на ваше приложение Engine в папке Consuming app package.json. Я думаю, что вы должны добавить в приложение Потребление package.json Engine. Для in-repo-addons - движков, которые я могу найти в демоверсии ember-Engine-Demo, что в package.json они имеют:
"ember-addon": {
"paths": [
"lib/ember-chat-engine"
]
}
Не для in-repo-addon, а для обычных модулей:
"dependencies": {
"ember-data": "^2.6.0",
"ember-engines": "dgeb/ember-engines#v0.2",
"ember-blog-engine": "dgeb/ember-blog-engine"
},
Обратите внимание на ember-blog-engine. Вот полная ссылка на их package.json.
Однако в вашем Package.json в вашем Потребляющем приложении ember-engine-app не указано имя ember-engine-engine.
Ember обрабатывает аддоны из списков package.json, поэтому вам нужно ссылаться на ваш аддон движка. В противном случае вы никогда не получите никакой строки кода из такого пакета, выполненного в среде Ember CLI.
Пожалуйста, добавьте ваш ember-engine-engine в приложение package package.json.
Я бы добавил, что несовместимость также может быть проблемой...
Поскольку Ember Engines является экспериментальным и разрабатывается на основе основных ветвей Ember и Ember-CLI, убедитесь, что вы используете совместимые версии.