Používám framework, který běží npm
a webpack
automaticky adresář /usr/lib/node_modules
mají 755 oprávnění, která vyžadují ke spuštění npm
přes sudo
. Rámec, který používám, neumožňuje přidat sudo
k příkazu.
Nyní potřebuji nainstalovat balíčky npm v globální podobě (např. npm install webpack -g
) bez použití sudo
.
Jaká oprávnění budou v pořádku pro /usr/lib/node_modules
? Pokud nastavím oprávnění 777, bude to v pořádku a bezpečné?
Děkuji!
Přijatá odpověď:
Nemusíte měnit oprávnění z npm
abyste jej mohli používat bez sudo
. K nastavení npm
spustit bez sudo
postupujte takto:
Možnost 1:
-
Získejte cestu k adresáři npm:
npm config get prefix
-
Pokud máte
/usr
přejděte na možnost 2 jinak změňte vlastníka adresářů npm na váš:sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Možnost 2:
-
Vytvořit adresář pro globální instalace:
mkdir ~/.npm-global
-
Nakonfigurujte použití tohoto adresáře:
npm config set prefix '~/.npm-global'
-
Otevřete nebo vytvořte
~/.profile
a přidejte toto:export PATH=~/.npm-global/bin:$PATH
-
Přidejte toto také do svého
~/.bashrc
soubor (volitelné):export PATH=/home/username/.npm-global/bin:$PATH export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/username/.npm-global/lib/node_modules
-
Obnovte soubory:
source ~/.bashrc
-
Otestujte spuštěním:
npm install -g jshint
zdroj:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
http://www.competa.com/blog/how-to-run-npm-without-sudo/