React.js npm start エラー対策
React.jsでnpm start
実行後のエラー「sh: react-scripts: command not found」について
問題
React.jsプロジェクトでnpm start
コマンドを実行した際に、以下のエラーメッセージが表示されることがあります。
sh: react-scripts: command not found
これは、react-scripts
コマンドがシステムパスに登録されていないことを示しています。
原因
- システムパスに登録されていない
react-scripts
がインストールされていても、システムパスの環境変数に登録されていないと、コマンドとして認識されません。 - react-scriptsがインストールされていない
react-scripts
は、Create React Appプロジェクトの依存関係として自動的にインストールされます。もし、プロジェクトの初期化が正しく行われていない場合、react-scripts
がインストールされていない可能性があります。
解決方法
react-scriptsのインストール確認
- プロジェクトのディレクトリに移動します。
npm list
コマンドを実行して、react-scripts
がインストールされていることを確認します。
react-scriptsのパス登録
node_modules/.bin
ディレクトリは、通常、react-scripts
コマンドがインストールされる場所です。このディレクトリをシステムパスの環境変数に登録することで、コマンドとして認識できるようになります。
macOS/Linux
- ターミナルで以下のコマンドを実行します。
export PATH=$PATH:$(pwd)/node_modules/.bin
- この変更を永続的に適用するには、
.bashrc
または.zshrc
ファイルに上記の行を追加します。
Windows
- コマンドプロンプトまたはPowerShellで以下のコマンドを実行します。
set PATH=%PATH%;%cd%\node_modules\.bin
- この変更を永続的に適用するには、システム環境変数を編集します。
npm startの再実行
- システムパスの設定は、オペレーティングシステムによって異なる場合があります。
npm start
コマンドは、開発サーバーを起動するためのスクリプトを呼び出します。- Create React Appプロジェクトでは、
react-scripts
コマンドはプロジェクトの依存関係として自動的にインストールされます。
エラー発生例
sh: react-scripts: command not found
このエラーは、React.jsプロジェクトでnpm start
コマンドを実行した際に、react-scripts
コマンドがシステムパスに登録されていない場合に発生します。
対策例
npm list
- Windows
set PATH=%PATH%;%cd%\node_modules\.bin
- macOS/Linux
export PATH=$PATH:$(pwd)/node_modules/.bin
npm start
具体的な例
# プロジェクトのディレクトリに移動
cd my-react-app
# `react-scripts`のインストール確認
npm list
# `react-scripts`のパス登録(macOS/Linux)
export PATH=$PATH:$(pwd)/node_modules/.bin
# `npm start`の再実行
npm start
注意事項
react-scripts
は、Create React Appプロジェクトの依存関係として自動的にインストールされます。
プロジェクトのディレクトリから直接実行:
node_modules/.bin
ディレクトリは、通常、react-scripts
コマンドがインストールされる場所です。このディレクトリに移動して、react-scripts
コマンドを直接実行することができます。
cd node_modules/.bin
./react-scripts start
npm scriptを使用:
package.json
ファイルのscripts
セクションにstart
スクリプトを定義し、それを実行することもできます。
{
"scripts": {
"start": "react-scripts start"
}
}
そして、npm start
コマンドを実行します。
npxを使用:
npx
コマンドは、ローカルにインストールされたパッケージを実行するためのツールです。これを使用して、react-scripts
コマンドを実行することもできます。
npx react-scripts start
- 最も一般的な方法は、
npm start
コマンドを使用することですが、他の方法も状況に応じて使用することができます。
例
# プロジェクトのディレクトリに移動
cd my-react-app
# 代替方法1: プロジェクトのディレクトリから直接実行
cd node_modules/.bin
./react-scripts start
# 代替方法2: npm scriptを使用
npm start
# 代替方法3: npxを使用
npx react-scripts start
reactjs