npm installやnpm runは何を動かす?名前の先を見る

30秒でわかる答え

npm installやnpm ciは、使うプログラムの部品をそろえます。npm runは、決めてある手順を動かします。名前だけで決めず、何を変えるか、外へ何か送るかをAIに聞けます。

AIにサイトづくりなどをたのむと、npm installやnpm run buildという名前が出てくることがあります。「必要なものを入れます」と言われても、何が変わるのかは気になりますよね。

npm installやnpm ciは、使う部品をそろえる指示です。npm runは、その作業用に決めてある手順を動かします。 部品をそろえる途中にも、何かが動く場合があります。

プログラムは、PCにしてほしいことを書いた手順です。その部品をひとまとめにしたものを「パッケージ」といいます。npmは、そうした部品や、決めてある手順を扱う道具です。この記事ではnpmの版11の公式説明をもとに、AIへ聞く場所を見ていきます。

installとciは、部品をそろえる

名前何をする?先に知っておきたいこと
npm install必要な部品を調べて入れる指定によっては、設定や部品の記録も変わる
npm ciすでにある記録に合わせて部品を入れ直す部品を置くnode_modulesというフォルダを、先に取りのぞく

フォルダは、ファイルをまとめて入れるものです。npmで入れた部品は、node_modulesという名前のフォルダに置かれます。

package.jsonは、何を使うかなどを決める設定ファイルです。package-lock.jsonなどには、部品の種類や版、その部品が使う別の部品も記録されています。

ciは、設定とその記録が合わないと止まります。エラーを消すためだけに記録を作り直すと、「同じ部品をそろえる」という目的も変わります。まず「何が合わずに止まったのか」を聞けます。

npm runは、名前に結びつけた手順を動かす

次は、説明用の小さな設定です。自分のファイルへ貼り付ける必要はありません。

{
  "scripts": {
    "build": "node scripts/build.mjs",
    "test": "node scripts/check.mjs"
  }
}

scriptsは、動かす手順を書いた部分です。この例でnpm run buildとすると、右側のnode scripts/build.mjsを動かします。つまり、次に中を見るのはbuild.mjsというファイルです。

nodeは、そのファイルに書かれたプログラムを動かす道具です。buildという名前が分かっても、ファイルの中で何をするかは、まだ分かりません。

buildは公開用ファイルを作るとき、testは検査するときによく使う名前です。ただし、名前は作る人が決められます。testという名前でも、ファイルを書きかえたり、ネットへつないだりすることがあります。

この名前につながっている手順を読んで、何を変えるか教えてください。

その前後に、別の手順が動くこともある

設定には、buildの前に動かすprebuild、あとに動かすpostbuildなどを置けます。実際に動くかは、設定や途中で止まるかによっても変わります。

一つの手順が、さらに別の手順を呼ぶこともあります。AIには、入口の一行だけでなく、そこから先まで読んでもらいます。

前後に動くものも含めて、作るもの、書きかえるもの、消すものを教えてください。外へ送るものはありますか。

nodeやpython、bashという名前も、動かす道具を示すだけです。何をするかは、その道具に渡す手順で決まります。名前を見ただけで「読むだけ」「消さない」とは決められません。

部品を入れる途中にも、作業が動く場合がある

installやciは、受け取ったファイルを置くだけとは限りません。部品を使うために、別のファイルを作ったり、必要なものを組み立てたりする手順が動くこともあります。npmの版や許可の設定で条件は変わります。

また、受け取った部品を入れるときの手順と、自分の作業でnpm runから動かす手順は別です。前者を動かさない設定にしたからといって、後者まで何もしなくなるわけではありません。

どこから部品を受け取るか、その部品を信用できるかも、npmという名前だけでは分かりません。

許可する前に、四つだけ聞くなら

長い設定を自分で全部読めなくても、次のように聞けます。

  1. どの設定と手順を使いますか。
  2. どのファイルを作り、変え、消しますか。
  3. どこにつなぎ、こちらから何かを送りますか。
  4. サイトを動かしたり、外へ公開したりするところまで含みますか。

「distを作り直します」と言われたら、distというフォルダに何があるかを聞けます。「devを動かします」なら、どの場所からサイトを見るのか、どう止めるのかが次の質問になります。

最初の設定でnpm run testを動かすと、その先はnode scripts/check.mjsでした。そこまでたどれれば、AIに「そのファイルの中で何をするか教えて」と聞けます。ほかの名前も出てきたら、コマンドの短い一覧へ戻って確かめられます。

npmのスクリプトの参考資料

内容の最終確認日:

この記事について

LAB WHITEBOARD

npmのスクリプトを一文で説明してみよう

「定義された処理と導入時の処理を見て、変更・通信先を確かめる」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。