この記事ではnpm
の基本的な使い方と例、オプションなどについて解説しています。
この記事でできること
npm
コマンドを利用して必要なモジュールをインストールすることができる。- Node.jsで動くプロジェクトを作成することができる。
package.json
ファイルの内容について理解できる。
前の記事
Node.jsのインストール方法について以下の記事で解説しています。またRaspberry Pi Zeroでインストールする場合は他のLinuxディストリビューションとは少し異なったインストール方法となりますので、注意してください😎
新規Node.jsプロジェクトを作成する
npm init
コマンドを使用することでNode.jsで動くプロジェクトのテンプレートを作成することができます。実行すると対話的に初期設定を行うことができます。
現在いるディレクトリがプロジェクトとなるので、先にmkdir
でプロジェクト用のディレクトリを作成して移動しておきましょう。
package name: (npm-example) version: (1.0.0) description: entry point: (index.js) test command: git repository: keywords: author: taneyats license: (ISC) About to write to /home/taneyats/project/npm-example/package.json: { "name": "npm-example", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "taneyats", "license": "ISC" } Is this OK? (yes)
丸かっこで提示されている値がデフォルト値です。基本的にはエンターキー連打でOKかと思います。author
(開発者)ぐらいは設定しておいてもいいかもしれません。
完了するとpackage.json
というファイルが作成されます。これでプロジェクトの作成は完了です。
コマンド
上記のプロジェクトを使ってモジュールをインストールしたりする手順を確認していきます。
npm install --save [パッケージ名]
このコマンドを実行することでnpmのリポジトリからモジュールをインストールすることができます。--save
をつけるとpackage.json
内にインストールしたモジュール名が追記され、プロジェクト再作成時などに一括でインストールできるようになります。(npm install
の項参考)
試しに処理を定期実行できるようにするnode-cron
というモジュールをインストールしてみます。使いたいモジュールを探すときはhttps://www.npmjs.com/ から検索したりします。
$ npm install --save node-cron ... + node-cron@2.0.3 added 3 packages from 3 contributors and audited 3 packages in 5.586s found 0 vulnerabilities
3パッケージが追加されたと表示されていますが、2パッケージはnode-cron
が使用する依存モジュールとなっています。インストールしたモジュールはプロジェクト内のnode_modules/
というディレクトリにあります。
プログラム内でrequire('node-cron')
として変数に代入することで使用することができます。これに関しては次の記事で一緒に簡単な処理を作ってみましょう😉
npm install -g [パッケージ名]
Node.jsプロジェクト内で使用するのではなく、コマンドライン上で使用することができるパッケージもnpmには豊富に存在しています。
例えば、Node.jsで作成した処理をデーモン化(バックグラウンドで実行)することができるforever
というパッケージがあります。
sudo npm install -g [パッケージ名]
でインストールすることができます。実行には管理者権限が必要となります(/usr/lib/
にインストールされるため)。
$ sudo npm install -g forever ... $ forever --version
forever
コマンドの使い方や何がそんなに便利か、については以下の記事で紹介しています。
(作成中)
npm install
このコマンドを実行することで、package.json
のdependencies
記載されているモジュールを一括でインストールすることができます。
ごくごく小規模なプロジェクトでもnode_modules/
内のファイルは膨大になるため、git
などのバージョン管理からは除外されることがほとんどです。プロジェクトをクローンしてから各自でnpm install
を実行してモジュールを取得するという流れになります。
先ほどのnpm install --save node-cron
でdependenciesに追記されているのでnode_modules/
をいったん削除してnpm install
を実行してみましょう。
$ rm -rf node_modules/ $ npm install ... $ cd node_modules/ $ ls node-cron opencollective-postinstall tz-offset
ちゃんと依存モジュールごとインストールされていますね!新しいプロジェクトをクローンしてきたときには忘れずに実行する必要があります。
npm [package.jsonで定義したコマンド]
package.json
のscripts
に定義されているコマンドを実行することができます。たいていの場合は起動コマンドやビルド用のコマンドが割り当てられています。
例えばExpress
で作成されているAPIサーバーには以下のようなコマンドが割り当てられています。
"scripts": { "start": "node ./bin/www" },
サーバーのポート番号などのオプションで長ったらしくなったコマンドにエイリアスを作成するという感じですね🤔
次の記事
npmのモジュールを利用してちょっとしたスクリプトを作成します。(天気予報など)
[:embed]