2015-10-20 20 views
6

Ho un pacchetto npm locale incluso nel mio repository (non includo l'intero node_modules nel mio repository a causa della sua dimensione superiore a 200mb, solo il pacchetto specifico che ho dovuto modificare per soddisfare le mie esigenze).Heroku non riesce a trovare il pacchetto npm locale

In package.json, dichiarazione pacchetto locale si presenta così:

dependencies : { 
    local_package: "./my_local_package" 
    ... 
} 

l'errore ho ottenuto

npm ERR! enoent ENOENT: no such file or directory, open 
'/app/tmp/cache/my_local_package' 

io non sono sicuro se /app/tmp/cache è il luogo dove i miei risiede pronti contro termine e se non lo è a cosa dovrei cambiarlo.

nodo V4.2.1, npm v2.14.7

+0

prima di spingere a Heroku, perché non do u mettere i nomi dei pacchetti? Puoi tenerlo in git con la relativa directory locale, ma per lei puoi cambiarlo e distribuirlo –

+0

La dipendenza locale è inclusa nel repository git, ovviamente (altrimenti, non mi aspetto che funzioni). Questa caratteristica di specificare le dipendenze locali in 'package.json' è supportata da npm 2.0 e il fatto che non sembra funzionare quando la distribuzione in heroku è il motivo esatto per cui sto facendo questa domanda :). – evfwcqcg

+0

hai provato a disabilitare la cache? 'heroku config: imposta NODE_MODULES_CACHE = false'. Potete fornire il log di distribuzione completo? – hassansin

risposta

0

Aggiunta node_modules a git o spingendolo verso heroku non è consigliabile.

Quindi, una possibile soluzione sarebbe quella di avere il tuo local_package su un repository Git separato, quindi potresti fare quanto segue al tuo package.json.

dependencies : { local_package: "git+https://example.com/local_package.git" ... }

sento che questa è una soluzione più bello di avere solo un local_package nella vostra node_modules mentre tutti gli altri vengono ignorati.

1

Secondo npm documentation for local paths, è necessario definire in questo modo:

"dependencies" : { 
    "local_package": "file:./my_local_package" 
    ... 
} 
+0

Grazie per aver segnalato questo. Anche se non ha corretto l'errore, è stato molto utile leggere i documenti. Non ho ancora idea del perché questo passaggio fosse necessario, ma quando ho aggiunto 'npm i ./local_package --save' al mio script di distribuzione ha installato quel pacchetto dalla directory locale. – evfwcqcg

Problemi correlati