2015-07-16 1 views
7

J'importe avec succès un plugin jQuery via Bower pour être utilisé dans un composant d'un addon Ember-cli. Cependant, cela ne fonctionne que parce que j'ai défini une dépendance Bower sur ce plugin dans à la fois l'addon et l'application consommatrice.Comment importer des dépendances Bower à partir d'un addon Ember-cli dans l'application consommatrice?

Cela semble être une erreur. Pourquoi l'application consommatrice doit-elle déclarer une dépendance à une ressource qui doit être fournie avec l'addon?

Le point crucial de l'affaire semble être le contexte app lors de la construction. Je ne peux omettre la dépendance Bower dans l'application consommatrice si j'utilise la déclaration import suivante dans le fichier index.js de l'addon:

app.import('node_modules/my-ember-cli-addon/bower_components/jquery.stickyHooters/dist/jquery.stickyHooters.min.js'); 

... mais cela brise quand je construis l'addon comme une application autonome. Dans ce cas, ce chemin est requis:

app.import('bower_components/jquery.stickyHooters/dist/jquery.stickyHooters.min.js'); 

Comment cela fonctionne-t-il?

  1. Déclarant la dépendance Bower en deux endroits semble contre-intuitif
  2. Je ne sais pas comment détecter le contexte app dans le index.js du addon
+0

Peut-être liés, mais sans réponse: http://stackoverflow.com/questions/25654482/importing-dependencies-in-an-ember-cli-addon-for-a-component –

Répondre

7

Commander ember-cli page d'accueil sur les plans par défaut. Il décrit comment vous pouvez importer un paquet de composants de bower lors de l'installation de votre addon.

+2

OK, donc des plans comme une solution pour cela Le problème semble un peu illogique, mais il ressort clairement de la documentation que c'est la façon de gérer cela. Cependant, la documentation semble être incomplète car l'application consommatrice n'installe toujours pas la dépendance de l'addon. –

+0

Mise à jour: ce que _does_ fait est d'ajouter la dépendance à l'application parente. Ce qui signifie que toutes les constructions suivantes nécessiteront 'npm install', ajoutant ainsi la dépendance. –