2015-05-26 7 views
6

Ich versuche mein erstes Ember-AddOn zu erstellen und ich bin dabei, es in ein Ember-Projekt zu importieren. Ich habe das Addon erstellt und veröffentlicht, so GitHub:Wie importierst du ein neu erstelltes Ember-Addon?

ember-cli$ ember addon test-addon 
ember-cli$ cd test-addon 
ember-cli/test-addon$ git remote add origin <github-url> 

Dann von meinem Projekt, ich installieren Sie das Add-on:

test-app$ ember install <github-url> 

Und schließlich, versuchen Sie es in eine Route zu importieren:

# app/rotues/index.coffee 
import TestAddon from 'test-addon' 

Aber ich immer diese Fehlermeldung auf der Konsole:

Uncaught Error: Could not find module `test-addon` imported from `test-app/routes/index` 

Irgendwelche Ideen, wo ich falsch liege? Ich kann das Addon im Verzeichnis node_modules sehen, aber nicht in bower_components. Ich denke (tm), das ist mein Problem, aber ich bin mir nicht sicher, was ich noch tun muss, um mein Addon einzurichten.

+3

Wenn Sie nicht zu npm veröffentlichen, müssen Sie [Link] (https://docs.npmjs.com/cli/link) Ihr Addon zu Ihrem Ember-Projekt – MilkyWayJoe

+0

Danke @MilkyWayJoe, aber ich glaube nicht, dass das ist Problem. Ich veröffentliche das Addon in einem privaten Repository auf github und installiere es dann in der Test-App (Ich habe den Installationsschritt zu meiner Frage hinzugefügt). Ich habe auch versucht, npm Link wie Sie vorgeschlagen, aber ich bekomme immer noch den gleichen Fehler. – spinlock

Antwort

12

tl; dr

cd my-addon 
npm link 
cd /my/project/dir 
npm link my-addon 
ember g my-addon # run default blueprint 

Dann "my-addon": "*" zum devDependenciespackage.json der Abschnitt Ihrer App hinzufügen und die glut-cli App-Server neu starten. Längere

Antwort

Der einfachste Weg, ein lokal entwickelte Add-on enthalten ist use NPM's link

Erster Lauf npm link von der Wurzel Ihres addon Projekt registriert es mit npm. Dann wird der Lauf npm link <your-addon-name> den gleichen Effekt wie npm install haben.

Sie müssen es immer noch manuell zu Ihrem package.json hinzufügen (erforderlich für ember-cli, um es beim Kompilieren Ihrer App zu finden) und führen Sie die default blueprint (wenn Ihr Addon eins hat).

Wenn dies nicht zu funktionieren scheint, überprüfen Sie, dass Sie eine package.json in Ihrem Add-on mit "ember-addon" in der keywords Liste erstellt haben (der Standard glut-cli Addon Plan sollte dies für Sie tun).

+0

Ich werde dies als die Antwort akzeptieren, weil die Verwendung eines lokalen Repos definitiv der Weg ist. Ich habe vergessen, was mit dem Import von GitHub los war, aber es ist definitiv einfacher, das Addon lokal zu halten. – spinlock

+0

Ja, sicherlich für die Entwicklung, Verknüpfung ist der Weg zu gehen. Aber wenn du woanders baust (CI oder so), dann bin ich mir ziemlich sicher, dass du einfach von einem privaten Repo wie gewohnt installieren solltest ... Wie auch immer, froh, dass du es aussortiert hast! –

Verwandte Themen