React native expo-cli permission denied リアクトインストール出来ない権限問題 EACCES mac
流行りのReact nativeを勉強してみようと思ったのでインストール
npm install -g expo-cli
Result:
ERR! sharp EACCES: permission denied, mkdir '/Users/***/.npm/_libvips' info sharp Attempting to build from source via node-gyp but this may fail due to the above error info sharp Please see https://sharp.pixelplumbing.com/page/install for required dependencies gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/JP23136/.node-gyp/10.16.0" gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/expo-cli/node_modules/sharp/.node-gyp" gyp WARN install got an error, rolling back install gyp WARN install got an error, rolling back install gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/expo-cli/node_modules/sharp/.node-gyp' gyp ERR! System Darwin 18.5.0 gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /usr/local/lib/node_modules/expo-cli/node_modules/sharp gyp ERR! node -v v10.16.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! sharp@0.22.1 install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the sharp@0.22.1 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
なんと初手から失敗
EACCESパーミッション問題はどうやらNodeのパッケージをglobalにインストールしようとすると起こるらしい。 解決方法としては二つ!
- npmをアンインストールして、node version manager(nvm)でインストールし直す
- 推奨されているらしい
- が試していないので省略
- アンインストールはだるい
- npmのデフォルトディレクトリを手動で変える
- コマンドを打つだけなので楽
私は二番目の方法で解決したので記録
- global インストール用のディレクトリを作る
mkdir ~/.npm-global
- npmのディフォルトディレクトリをセット
npm config set prefix '~/.npm-global'
- 空のファイルを作る
// 私はvimでそのまま保存。エディタはご自由に vi ~/.profile
- 環境変数を変える
export PATH=~/.npm-global/bin:$PATH source ~/.profile
今度はインストール出来るはず!
npm install -g expo-cli
無事成功