2015-05-26 12 views
6

Sto provando a creare il mio primo AddOn Ember e mi sto bloccando importandolo in un progetto Ember. Ho creato l'addon e pubblicato a GitHub come questo:Come si importa un addon ember appena creato?

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

Poi, dal mio progetto, posso installare l'addon:

test-app$ ember install <github-url> 

E, infine, cercare di importarlo in un percorso:

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

Ma, sto ottenendo questo errore sulla console:

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

Qualche idea su dove sto andando male? Riesco a vedere l'addon nella directory node_modules ma non in bower_components. Penso che sia questo il mio problema, ma non sono sicuro di cos'altro dovrei fare per configurare il mio addon.

+3

Se non stai pubblicando su npm, devi [link] (https://docs.npmjs.com/cli/link) il tuo addon al tuo progetto ember – MilkyWayJoe

+0

Grazie @MilkyWayJoe ma non penso che sia il problema. Sto pubblicando l'addon in un repository privato su github e poi installandolo nell'app di test (ho aggiunto il passaggio di installazione alla mia domanda). Ho anche provato il collegamento npm come suggerito, ma ottengo ancora lo stesso errore. – spinlock

risposta

12

tl; dr

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

Quindi aggiungere "my-addon": "*" alla sezione devDependencies del del package.json vostra applicazione e riavviare il server app braci-cli.

Longer risposta

Il modo più semplice per includere un addon localmente sviluppato è quello di use NPM's link

Prima esecuzione npm link dalla radice del proprio progetto addon per registrarlo con NPM. Quindi l'esecuzione di npm link <your-addon-name> avrà lo stesso effetto di npm install.

Avrete comunque bisogno di aggiungerlo manualmente al vostro package.json (necessario per trovarlo da ember-cli durante la compilazione della vostra app) ed eseguire lo default blueprint (se il vostro addon ne ha uno).

Se questo non sembra funzionare, verificare che hai creato un package.json nel vostro addon con "ember-addon" nella lista keywords (la brace-cli addon progetto di default dovrebbe fare questo per voi).

+0

Ho intenzione di accettare questo come la risposta, perché l'utilizzo di un repo locale è sicuramente la strada da percorrere. Ho dimenticato cosa c'era di sbagliato nell'importazione da github ma è decisamente più semplice mantenere l'addon locale. – spinlock

+0

Sì, certamente per lo sviluppo, il collegamento è la strada da percorrere. Ma se stai costruendo da qualche altra parte (CI o qualcosa), allora sono abbastanza sicuro che dovresti semplicemente installare da un repository privato lo stesso del normale ... Comunque, sono felice che tu l'abbia risolto! –

Problemi correlati