Ember-cli addon dev, как отличить addon dev от приложения dev - PullRequest
0 голосов
/ 30 августа 2018

Когда вы создаете аддон ember-cli, вы должны иметь возможность запускать фиктивное приложение.

Если компоненту требуется доступ к его папке поставщика, вы получаете доступ к "public /" в рабочей среде. При разработке приложения ember, которое использует аддон, к которому вы обращаетесь:

app.options.project.nodeModulesPath + "/"+ this.name+"/vendor/"

Однако, когда вы запускаете аддон-сервер ember-cli (фиктивное приложение), вам нужно только "vendor /".

this.getEnv() вернет developpement при разработке аддона или приложения, использующего аддон.

Как я могу, в index.js, отличать app dev от addon dev?

1 Ответ

0 голосов
/ 31 августа 2018

Предположим, мы находимся в ловушке included, вы можете проверить this.isAddon(), чтобы определить, где вы сейчас находитесь. Скажем, если вы сейчас находитесь в приложении ember, вы можете вызвать path.dirname(require.resolve('ADDON_NAME/package.json')), чтобы получить абсолютный путь к вашему дополнению ember.

Следует отметить, что this.isAddon() может не являться публичным API (хотя он достаточно стабилен, но все еще не указан в API doc). Если вы обеспокоены этим, вы можете использовать this.parent.name() для достижения той же цели, когда вы запускаете с фиктивным приложением, this.parent.name() всегда возвращает dummy.

Кстати, this.parent - то же самое, что и app.project, где app - первый аргумент included hook.

...