ReactJSで"sh: react-scripts: command not found after running npm start" エラーが発生した時の解決方法

2024-04-02

ReactJSで "sh: react-scripts: command not found after running npm start" エラーが発生する原因と解決方法

npm start コマンドを実行した時に sh: react-scripts: command not found エラーが発生する場合、いくつかの原因が考えられます。このエラーは、ReactJSプロジェクトでよく発生する問題の一つです。

原因

このエラーが発生する主な原因は以下の4つです。

  1. react-scripts がインストールされていない
  2. node_modules フォルダが破損している
  3. 環境変数 PATH が正しく設定されていない
  4. npm または yarn のバージョンが古い

解決方法

原因によって解決方法は異なりますが、以下の手順を試してみてください。

以下のコマンドを実行して react-scripts をインストールします。

npm install react-scripts

以下のコマンドを実行して node_modules フォルダを削除し、再インストールします。

rm -rf node_modules
npm install

環境変数 PATH の設定

以下のコマンドを実行して、環境変数 PATHnode_modules/.bin ディレクトリを追加します。

export PATH=$PATH:$HOME/node_modules/.bin

以下のコマンドを実行して npm または yarn のバージョンを確認します。

npm -v

または

yarn -v

バージョンが古い場合は、以下のコマンドを実行して最新バージョンに更新します。

npm install -g npm
yarn global upgrade

その他の解決方法

上記の方法で解決しない場合は、以下の方法を試してみてください。

  • プロジェクトフォルダのパスに日本語が含まれていないことを確認する。
  • キャッシュをクリアする。
  • プロジェクトを再作成する。

補足

  • このエラーは、Mac OS X、Windows、Linux などのすべてのオペレーティングシステムで発生する可能性があります。
  • このエラーが発生した場合は、エラーメッセージの内容をよく読んで原因を特定することが重要です。
  • 上記の方法で解決できない場合は、オンラインフォーラムやコミュニティで助けを求めることを検討してください。

改善点

  • 日本語で分かりやすく説明するように努めました。
  • 原因と解決方法を箇条書きにして、読みやすくしました。



// App.js

import React from 'react';

function App() {
  return (
    <div>
      <h1>Hello, world!</h1>
    </div>
  );
}

export default App;
// index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

このコードを実行するには、以下のコマンドを実行します。

npm start

ブラウザで http://localhost:3000 を開くと、"Hello, world!" という文字が表示されます。

  • サンプルコードとその他のサンプルコードへのリンクを追加しました。



react-scripts を使用せずに ReactJS プロジェクトを作成する方法

以下の手順で、手動で ReactJS プロジェクトを作成することができます。

  1. プロジェクトフォルダを作成します。
  2. index.html ファイルを作成し、以下のコードを追加します。
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ReactJS プロジェクト</title>
</head>
<body>
  <div id="root"></div>
</body>
</html>
import React from 'react';

function App() {
  return (
    <div>
      <h1>Hello, world!</h1>
    </div>
  );
}

export default App;
{
  "name": "react-project",
  "version": "1.0.0",
  "description": "ReactJS プロジェクト",
  "main": "index.js",
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test"
  },
  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  }
}
  1. node_modules フォルダを作成し、以下のコマンドを実行して必要なライブラリをインストールします。
npm install

Babel を使用してプロジェクトを作成する

Babel は、JavaScript の新しい構文を古いブラウザで実行できるようにするためのツールです。Babel を使用して ReactJS プロジェクトを作成するには、以下の手順が必要です。

const App = () => {
  return (
    <div>
      <h1>Hello, world!</h1>
    </div>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));
{
  "name": "react-project",
  "version": "1.0.0",
  "description": "ReactJS プロジェクト",
  "main": "index.js",
  "scripts": {
    "start": "babel-node index.js",
    "build": "babel index.js -o dist/index.js",
    "test": "jest"
  },
  "dependencies": {
    "babel-core": "^7.12.13",
    "babel-preset-env": "^7.12.13",
    "babel-preset-react": "^7.12.13",
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  }
}
npm install
import React from 'react';
import ReactDOM from 'react-dom';

const App = () => {
  return (
    <div>
      <h1>Hello, world!</h1>
    </div>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));

reactjs


ReactJS で dangerouslySetInnerHTML を使用して改行なしスペースをレンダリングする方法

ReactJS では、&nbsp; エンティティまたは React. createElement('span', { dangerouslySetInnerHTML: { __html: ' ' }}) を使用して、改行なしスペースをレンダリングすることができます。...


React + ES6 + Webpack でコンポーネントのインポートとエクスポートをマスターしよう!

React、ES6、Webpack を使用してコンポーネントをインポートおよびエクスポートする方法について、分かりやすく説明します。コンポーネントとはReact コンポーネントは、ユーザーインターフェース (UI) の再利用可能な部分です。各コンポーネントは、独自のロジックとレンダリングを持つ JavaScript 関数として定義されます。...


React、JavaScript、CSSをバンドルするための最強ツール:Webpackローダー vs プラグイン徹底解説

ローダー は、個々のファイルを処理するために使用されます。たとえば、JavaScriptファイルを ES6 から ES5 にトランスパイルしたり、CSSファイルを Sass から CSS にコンパイルしたりするために使用できます。ローダーは、Webpack のビルドプロセス中にファイルが読み込まれるときに実行されます。...


React インラインスタイルを使用した背景画像の設定

React では、インラインスタイルを使用してコンポーネントの背景画像を設定することができます。これは、スタイルオブジェクトを直接 style プロパティに渡すことで実現できます。手順背景画像として使用する画像ファイルを準備します。コンポーネント内で、style プロパティに backgroundImage プロパティを設定します。...


React.jsボタン無効化の教科書:無効化のベストプラクティスと詳細ガイド

disabled 属性を使うHTMLの button 要素には、disabled 属性があります。この属性を true に設定すると、ボタンが無効になります。useState フックを使って、ボタンの状態を管理することもできます。ボタンの状態を true に設定すると、ボタンが無効になります。...


SQL SQL SQL SQL Amazon で見る



ReactJS初心者でも安心!「react-scripts: command not found」エラーの解決策を完全網羅

ReactJSで「react-scripts: command not found」エラーが発生する場合、主に以下の2つの原因が考えられます。react-scriptsパッケージがインストールされていないグローバルにインストールされていない


npm install --legacy-peer-deps は本当に必要?代替方法を徹底解説

peer dependency は、あるパッケージが正常に動作するために必要な、他のパッケージのバージョン を指定するものです。これは、依存関係の管理をより厳密にするために導入されました。npm v7 以降では、peer dependency で指定されたバージョンが厳密にチェックされます。そのため、既にインストールされているパッケージのバージョンが、peer dependency で指定されたバージョンと一致していない場合、エラーが発生する可能性があります。