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:

  1. creazione di un file .npmrc con root, binroot, e manroot punta a cartelle che l'utente possiede.
  2. 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.

È stato utile?

Soluzione

Con un po 'di esplorazione, a quanto pare è possibile:

  1. impostare il NODE_PATH a qualsiasi NPM di directory principale è, o
  2. mentre nel nodo invoke require.paths.push('path_to_npm_root')

Altri suggerimenti

Questo ha funzionato per me:

  1. Fare un ~/.node cartella

    mkdir ~/.node
    
  2. Modifica ~/.npmrc e aggiungere la riga

    prefix = ~/.node
    
  3. Modifica il tuo ~/.profile o ~/.bash_profile e aggiungere queste righe

    PATH="$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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top