Come si fa a impostare NPM (nodo Package Manager) senza accesso root?
-
02-10-2019 - |
Domanda
Impostazione NPM come utente root è straighforward e workds. Tranne quello che dovete eseguire comandi NPM come root (non raccomandato). Così ho pensato di provare la sua creazione come utente non root.
Secondo la documentazione NPM, un utente non-root senza accesso root può impostare NPM da:
- creazione di un file
.npmrc
conroot
,binroot
, emanroot
punta a cartelle che l'utente possiede. - Quindi l'esecuzione dello script di installazione.
OK. Installare andava bene.
Ma nodo non può vedere i pacchetti forniti da npm.
Quindi, come faccio a fare il nodo a conoscenza dei pacchetti forniti da NPM? (Non ho dovuto fare niente quando ho precedentemente installato NPM come root).
Posso impostare require.paths
all'interno del nodo, oppure impostare la variabile d'ambiente NODE_PATH
, ma per che cosa?
Grazie.
Soluzione
Con un po 'di esplorazione, a quanto pare è possibile:
- impostare il
NODE_PATH
a qualsiasi NPM di directory principale è, o - mentre nel nodo invoke
require.paths.push('path_to_npm_root')
Altri suggerimenti
Questo ha funzionato per me:
-
Fare un
~/.node
cartellamkdir ~/.node
-
Modifica
~/.npmrc
e aggiungere la rigaprefix = ~/.node
-
Modifica il tuo
~/.profile
o~/.bash_profile
e aggiungere queste righePATH="$HOME/.node/bin:$PATH" NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
Ora posso fare le cose come npm -g install http-server
e sarà l'installazione di ~/.node
, senza radici. Con questo in luogo, quando ho quindi digitare http-server
, viene eseguito.