はじめに この記事は、東京大学工学部電気電子工学科・電子情報工学科の実習「大規模ソフトウェアを手探る」のレポートとして書かれています。 ソースコード全体を把握することがほぼ不可能であるような大規模なオープンソースソフトウェアについて、所望の機能に関する部分を特定し、改良・機能拡張しよう、という趣旨の実習です。 この記事では、対象のソフトウェアとして npm を選択し、実際に「手探った」過程、成果を記述しています。 npmを手探り対象に決定 npmとは npm (Node Package Manager)とはJavaScriptの実行環境の1つであるNode.jsのパッケージ管理システムです。 Node.js環境での開発において外部パッケージを使用する際、そのパッケージは他の複数のパッケージを用いて開発されていることがよくあります。npmの主な機能は、このようなパッケージの依存関係の解消であ