Stavo per avviare qualche sviluppo di node.js a casa, ma sono incappato in qualche comportamento strano quando installavo pacchetti npm a livello globale.npm imposta strane permesse per i pacchetti installati globalmente
Uso WebStorm come IDE e desidero utilizzare le funzionalità ECMAScript6, il che significa che devo trasporre i sorgenti, che WebStorm esegue utilizzando Babel.
Così ho provato ad installare Babel a livello globale:
$ sudo npm install -g babel-cli
Quello che succede è che i file sono tutte belle accessibili da utente root, e la directory babel-cli
e tutti i file e le directory in esso guardano bene finché Sembro root
. Il problema nasce quando provo a guardare il pacchetto, o utilizzarlo, come un altro utente:
$ ls -l /usr/lib/node_modules/babel-cli/
ls: cannot access '/usr/lib/node_modules/babel-cli/lib': Permission denied
ls: cannot access '/usr/lib/node_modules/babel-cli/index.js': Permission denied
ls: cannot access '/usr/lib/node_modules/babel-cli/scripts': Permission denied
ls: cannot access '/usr/lib/node_modules/babel-cli/node_modules': Permission denied
ls: cannot access '/usr/lib/node_modules/babel-cli/package.json': Permission denied
ls: cannot access '/usr/lib/node_modules/babel-cli/README.md': Permission denied
ls: cannot access '/usr/lib/node_modules/babel-cli/bin': Permission denied
total 0
d????????? ? ? ? ? ? bin/
d????????? ? ? ? ? ? lib/
d????????? ? ? ? ? ? node_modules/
d????????? ? ? ? ? ? scripts/
-????????? ? ? ? ? ? index.js
-????????? ? ? ? ? ? package.json
-????????? ? ? ? ? ? README.md
Non importa quale pacchetto installo, tutti diventano in questo modo.
Sto usando node.js v6.3.0 e npm 3.10.3, su Ubuntu 16.04.
Ho installato node.js come richiesto here. Se provo ad aggiornare npm
, lo stesso accade alla directory globale di npm e npm non è disponibile eccetto per root
.
Quando vi elenco globale node_modules
come utente vedo
$ ll /usr/lib/node_modules/
total 8,0K
drwxr--r-- 6 nobody root 4,0K jul 15 23:50 babel-cli/
drwxr-xr-x 10 root root 4,0K jul 15 23:21 npm/
Oltre alla directory di essere di proprietà di nobody
vedo niente di speciale.
Non ci sono ovviamente errori quando installo il pacchetto.
C'è qualcosa di sbagliato con npm e/o nodo? C'è qualcosa che non va in Ubuntu? O come ho installato il nodo? Quale potrebbe essere il motivo per cui qualcosa come succederà?
L'installazione locale funziona correttamente e per il pacchetto babel-cli
è una soluzione accettabile per installarlo come pacchetto di sviluppo locale. Mi piacerebbe ancora sapere cosa succede quando si installano i pacchetti a livello globale e perché.
Problema answered here. Il problema non era correlato a npm
e node
.
Io uso repository di origine nodo e Non ho visto questi problemi. Tuttavia, sto eseguendo il nodo 4.4 con un vecchio npm. Stai riscontrando il suo problema solo per babele? Che dire degli altri strumenti della CLI come grugniti, gulp, pergolati, ecc.? – tsturzl
@tsturzl È lo stesso per tutti i pacchetti che installo a livello globale. –
Non usare mai 'sudo' con' npm'. Stai solo chiedendo dei guai. Soffiare via il nodo, tutti i moduli e le directory di npm e installare tutto con le normali autorizzazioni utente. – xdumaine