npmとは
他人の書いたコードを借りる
プログラムを作っていると、誰かがすでに解いた問題に何度もぶつかります。日付を読みやすく整える、ランダムな ID を作る、サーバーを立てる。毎回自分で書くのは無駄です。
npm は、そうした部品を配って回す仕組みです。世界中の人が作った部品が置いてあって、名前を指定すれば自分のプロジェクトに持ってこられます。
プレーンテキスト
npm install expressこの 1 行で、このコースの後半で使う Express が手元に入ります。
入れたものはどこへ行くのか
入れた部品は node_modules というフォルダに置かれます。中を開くと、自分が指定した覚えのないフォルダも並んでいます。借りてきた部品自身も、別の部品を借りているからです。
この依存の連鎖は自動でたどられます。だから node_modules は自分で編集しませんし、他の人に渡すときも送りません。あとで出てくる package.json さえあれば、同じものをいつでも作り直せるからです。
使うときは読み込む
入れただけでは使えません。使いたいファイルの中で読み込みます。
JavaScript
const express = require("express");require は「この名前の部品を持ってきて」という指示です。カッコの中が部品の名前で、返ってきたものを変数で受け取ります。
自分で書いたファイルも同じ形で読み込めます。そちらは次の章で扱います。
何でも入れてよいわけではない
借りるということは、そのコードを自分のプログラムの中で動かすということです。名前がよく似ただけの偽物を掴むと、そのまま被害になります。
入れる前に、次のことを見る癖をつけてください。
- 名前の綴りが公式のものと一字一句合っているか
- 更新が続いているか
- 週あたりのダウンロード数が極端に少なくないか
手を動かす
演習では、借りているパッケージ名の一覧から、必要な require の行を組み立てる関数を書きます。npm が何を管理していて、コードのどこにつながるのかを、手で確かめてください。
要件
- 1 件を
const 名前 = require("名前");の形にする - 複数件のときは改行
\nでつなぎ、渡された並びを変えない - 依存が 1 つも無いときは空文字
""を返す
入出力例
buildRequires(["express"]) → "const express = require("express");"
buildRequires(["express","dotenv"]) → "const express = require("express");
const dotenv = require("dotenv");"
buildRequires(["dotenv","express"]) → "const dotenv = require("dotenv");
const express = require("express");"
buildRequires([]) → ""ヒント
編集 ゆめさく編集部