npm install を実行することで、プロジェクトが参照するパッケージをインストールしてくれます。但し、npm install をプロジェクトのサブフォルダ(子孫フォルダ)から実行しても、プロジェクトのルートフォルダに参照パッケージがインストールされます。
また、npm start を実行することで、プロジェクトを実行することができます。npm install 同様、npm start も、プロジェクトのサブフォルダ(子孫フォルダ)から実行しても問題なく動作することがあります。
これらのように、npm install や npm start が問題なく動作する理由は、npm はまず、カレントフォルダに package.json ファイル、もしくは、node_modules フォルダを探します。これらファイルやフォルダが見つかると、npm はこれらファイル・フォルダが見つかったフォルダを、npm コマンドを実行する有効なフォルダとみなします。
もしも package.json ファイル、node_modules フォルダが見つからない場合、上位フォルダに向かって該当ファイル・フォルダを探索します。そして、package.json ファイル・node_modules フォルダが存在するフォルダを npm コマンドを実行する有効なフォルダとみなします。
詳しくは、次の公式リファレンスを参照ください。
folders | npm Docs (npmjs.com)
その他参照リソース
🤔 Did you know you can run: “npm start” from any subfolder on your project? - idomongo - Medium