2015-10-31 24 views
5

Recentemente ho installato un nuovo nodejs 5.x con npm 3.x - la modifica più importante è la struttura piatta in node_modules: è una grande cosa sull'ambiente Windows.npm 3.x e percorsi locali nel package.json del modulo

Purtroppo ho notato che il nuovo npm inserisce i percorsi locali in package.json per tutti i moduli installati. Come posso evitare questo (o inserire un percorso relativo)? Voglio impegnare i miei node_modules nel repository hg, quindi tutti nel team di sviluppo avranno gli stessi moduli. Ecco un esempio package.json spogliato da abbrev pacchetto:

{ 
    "_args": [ 
    [ 
     "[email protected]://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz", 
     "C:\\Users\\ABC\\Documents\\ABC" 
    ] 
    ], 
    "_where": "C:\\Users\\ABC\\Documents\\ABC" 
} 

"C: \ Users \ ABC \ Documenti \ ABC" è percorso locale

migliori saluti,

+0

Suona come è "npm shrinkwrap". https://docs.npmjs.com/cli/shrinkwrap – eush77

+0

Purtroppo i pacchetti shrinkwrap hanno anche percorsi locali scritti dal gestore di npm. – Sassa

+0

Voglio dire che puoi eseguire 'npm shrinkwrap' e salvare il file risultante' npm-shrinkwrap.json' nel tuo progetto - non ci sono percorsi relativi in ​​questo file, solo nomi e versioni di pacchetti. Tutti gli altri che controllano questo progetto si installano da questo file e ottengono esattamente le stesse versioni. Problema risolto. Non è necessario impegnare l'intero 'node_modules' e gestire megabyte di registri diff. – eush77

risposta

Problemi correlati