【Vite】npm run devを実行した時のエラーの対応方法
Reactを動かす際にVite
「はじめてつくるReactアプリ:HTMLとCSSの知識だけで始められるReact開発!」という本を進める中で、Viteを使ってReactを動かす節があります。「npm run dev」を動かす際にエラーが出ました。
一応対処方法を備忘録として残しておきます。
実行環境
- MacBook Air Apple M1
- Mac OS Sonoma 14.5
- Node v20.16.0
- npm 10.8,1
Error: Cannot find module @rollup/rollup-darwin-arm64 が発生
npm run dev を実行した時のエラー内容は以下の通り。
% npm run dev
> react-weather-app@0.0.0 dev
> vite
/Users/takahashiseijika/Downloads/react-weather-app/node_modules/rollup/dist/native.js:59
throw new Error(
^
Error: Cannot find module @rollup/rollup-darwin-arm64. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try `npm i` again after removing both package-lock.json and node_modules directory.
at requireWithFriendlyError (/Users/takahashiseijika/Downloads/react-weather-app/node_modules/rollup/dist/native.js:59:9)
at Object.<anonymous> (/Users/takahashiseijika/Downloads/react-weather-app/node_modules/rollup/dist/native.js:68:76)
... 3 lines matching cause stack trace ...
at Module._load (node:internal/modules/cjs/loader:1024:12)
at cjsLoader (node:internal/modules/esm/translators:348:17)
at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:297:7)
at ModuleJob.run (node:internal/modules/esm/module_job:222:25)
at async ModuleLoader.import (node:internal/modules/esm/loader:316:24) {
[cause]: Error: Cannot find module '@rollup/rollup-darwin-arm64'
Require stack:
- /Users/takahashiseijika/Downloads/react-weather-app/node_modules/rollup/dist/native.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
at Module._load (node:internal/modules/cjs/loader:986:27)
at Module.require (node:internal/modules/cjs/loader:1233:19)
at require (node:internal/modules/helpers:179:18)
at requireWithFriendlyError (/Users/takahashiseijika/Downloads/react-weather-app/node_modules/rollup/dist/native.js:41:10)
at Object.<anonymous> (/Users/takahashiseijika/Downloads/react-weather-app/node_modules/rollup/dist/native.js:68:76)
at Module._compile (node:internal/modules/cjs/loader:1358:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
at Module.load (node:internal/modules/cjs/loader:1208:32)
at Module._load (node:internal/modules/cjs/loader:1024:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Users/takahashiseijika/Downloads/react-weather-app/node_modules/rollup/dist/native.js'
]
}
}
Node.js v20.16.0
対処方法
package-lock.json と node_modules ディレクトリの削除
まず、プロジェクトディレクトリで以下のコマンドを実行して、package-lock.json ファイルと node_modules ディレクトリを削除します。これは手動で削除しても、以下のコードを使って削除してもOKです。
rm package-lock.json
rm -rf node_modules
依存関係の再インストール
次に、以下のコマンドを実行して、プロジェクトの依存関係を再インストールします。
npm install
これにより、新たな package-lock.json が生成され、node_modules ディレクトリが再構築されます。
開発サーバーの起動
依存関係の再インストールが完了したら、開発サーバーを再度起動してみてください。
npm run dev
以下のように出力されれば成功です。
% npm run dev
> react-weather-app@0.0.0 dev
> vite
VITE v5.4.1 ready in 457 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
➜ press h + enter to show help
追記:vscodeのターミナルからではなく、macのターミナルからnpm installをおこなう
こちらの記事の中に、「権限的なものが原因では?」と書いてあるとおり、何かしら権限的なものが要因な気もします。
試しにvscodeのターミナルではなく、macのターミナルからcdをしてフォルダを移動した後に、無事npm installできました。