【エラー解決方法】npmでpermission deniedが発生したときの対処方法
目次
こんにちは。堀部です。
npmでVue.jsのセットアップを行った際にエラーが発生しました。
その際の解決方法をご紹介します。
エラー内容
Error: EACCES: permission denied, open ‘/var/www/public/mix-manifest.json’
at Object.openSync (node:fs:505:3)
at Object.writeFileSync (node:fs:1535:35)
at File.write (/var/www/node_modules/laravel-mix/src/File.js:225:12)
at Manifest.refresh (/var/www/node_modules/laravel-mix/src/Manifest.js:89:50)
at /var/www/node_modules/laravel-mix/src/webpackPlugins/ManifestPlugin.js:21:48
at Hook.eval [as callAsync] (eval at create (/var/www/node_modules/tapable/lib/HookCodeFactory.js:33:10),:12:1)
at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/var/www/node_modules/tapable/lib/Hook.js:18:14)
at Compiler.emitAssets (/var/www/node_modules/webpack/lib/Compiler.js:891:19)
at /var/www/node_modules/webpack/lib/Compiler.js:466:10
at processTicksAndRejections (node:internal/process/task_queues:76:11) {
errno: -13,
syscall: ‘open’,
code: ‘EACCES’,
path: ‘/var/www/public/mix-manifest.json’
エラー発生時の環境
エラー発生時の環境は、下記の通りです。
- npm
- 9.2.0
エラー解決方法
公式サイトに以下の記載がありました。
パブリック npm レジストリまたはプライベート npm レジストリとの間でパッケージを公開およびインストールするには、Node バージョン マネージャーまたは Node インストーラーを使用して、Node.js および npm コマンド ライン インターフェイスをインストールする必要があります。
Node.js と npm をインストールするには、 nvmなどの Node バージョン マネージャーを使用することを強くお勧めします。Node インストーラーの使用はお勧めしません。Node インストール プロセスでは、npm がローカル アクセス許可を持つディレクトリにインストールされ、npm パッケージをグローバルに実行するとアクセス許可エラーが発生する可能性があるためです。
そのため、以下のコマンドでnpmを再インストールします。
npm install -g npm
これで無事に実行ができました。
《関連記事》

【エラー解決方法】Nuxt.js で「Module not found: Error: Can’t resolve ‘sass-loader’ in ~」が発生したときの対処法

【エラー解決方法】Nuxt.js で「error ” is never reassigned. Use ‘const’ instead prefer-const」が発生したときの対処法
