そのプロパティを追加すると、スクリプトの環境に次のプレフィックスを付けて追加されます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=
$
これは、セキュリティ上の理由によるものです。レジストリの任意のパッケージでの構成設定npm
を変更できるようにするのは良くありません (たとえば、プレフィックスを に設定し、 という名前のファイルをインストールするとnpm
どうなるでしょうか) 。/etc
passwd
ただし、スクリプト行で環境変数を設定することで回避できます (これは 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
$
ただし、これはバグである可能性があるnpm
ため、この動作に依存しないことをお勧めします。とは別のユーザーを使用して問題を解決できますroot
か?
npm@2.6.1
出典: OSXでテスト済み。私はnpm
課題トラッカーhttps://github.com/npm/npm/issuesのサポート ボランティアです。