Quando si aggiunge che la proprietà, si sta aggiungendo che per l'ambiente del vostro script con il prefisso npm_config_package
:
$ cat package.json
{
"config": { "unsafe-perm": true }
}
$ npm run env | grep perm
$ npm run env | grep perm
npm_package_config_unsafe_perm=true
npm_config_unsafe_perm=true
$ sudo npm run env | grep perm
npm_package_config_unsafe_perm=true
npm_config_unsafe_perm=
$
Questo è per ragioni di sicurezza, una sorta di. Non sarebbe un bene per un pacchetto arbitraria dal registro npm
per consentire di cambiare npm
's impostazioni di configurazione (ad esempio, che cosa se impostato prefisso /etc
e installato un file chiamato passwd
)
Tuttavia è ancora possibile andare in giro impostando la variabile d'ambiente in sulla linea di edizione (con questo non funzionerà su Windows):
$ cat package.json
{
"config": { "unsafe-perm": true },
"scripts": { "foo": "npm_config_unsafe_perm=true env" }
}
$ npm run foo | grep unsafe_perm
npm_config_unsafe_perm=true
npm_package_config_unsafe_perm=true
npm_lifecycle_script=npm_config_unsafe_perm=true env
npm_package_scripts_foo=npm_config_unsafe_perm=true env
$ sudo npm run foo | grep unsafe_perm
npm_config_unsafe_perm=true
npm_package_config_unsafe_perm=true
npm_lifecycle_script=npm_config_unsafe_perm=true env
npm_package_scripts_foo=npm_config_unsafe_perm=true env
$
questo può essere un bug nel npm
però, quindi vi consiglio di non fare affidamento su questo comportamento. Puoi scappare usando un utente diverso da root
?
Origine: Testato con [email protected]
su OSX. Sono un volontario di supporto sul tracker di emissione npm
, https://github.com/npm/npm/issues.
fonte
2015-02-28 22:57:33
Ho letto quello. Il mio problema è che ho bisogno di correre con questa proprietà impostata su true come utente root. Questo è il punto della mia domanda – nanndoj
Questa proprietà può essere impostata sulla [commandline] (https://docs.npmjs.com/misc/config) quando si chiama npm, anche come root: sudo npm installa --unsafe-perm true PACKAGE_NAME –