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という名前だけでは分かりません。
許可する前に、四つだけ聞くなら
長い設定を自分で全部読めなくても、次のように聞けます。
- どの設定と手順を使いますか。
- どのファイルを作り、変え、消しますか。
- どこにつなぎ、こちらから何かを送りますか。
- サイトを動かしたり、外へ公開したりするところまで含みますか。
「distを作り直します」と言われたら、distというフォルダに何があるかを聞けます。「devを動かします」なら、どの場所からサイトを見るのか、どう止めるのかが次の質問になります。
最初の設定でnpm run testを動かすと、その先はnode scripts/check.mjsでした。そこまでたどれれば、AIに「そのファイルの中で何をするか教えて」と聞けます。ほかの名前も出てきたら、コマンドの短い一覧へ戻って確かめられます。
この記事について
LAB WHITEBOARD
npmのスクリプトを一文で説明してみよう
「定義された処理と導入時の処理を見て、変更・通信先を確かめる」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。

