npmとは?
- Node Package Managerの略
Node.jsのパッケージマネージャー
Node.jsとは?
サーバー側で動くJavaScriptのこと。
パッケージマネージャーとは?
Node.jsの便利な機能を集めたもの。ライブラリ。- 自分が一からコードを書かなくてもよくなる。
package.json
- json形式のファイル
- このファイルで
Node.jsを使ったプロジェクトを管理する。 - 親ディレクトリに含まれるファイルが一つのパッケージとなる。
npmを使ってみる。
それぞれのバージョンを確認する。
$ node -v
v12.18.4
$ npm -v
6.14.6
パッケージを作成したいディレクトリ内でnpm initを実行。色々聞かれるので、それぞれ答えていく。(わからなければ、適当に答えてあとでpackage.jsonを編集すればOK)
完了すれば、package.jsonが自動生成されているはず。
package.jsonの中身がよくわからなかったので基本をまとめてみた
メタデータ
- name
- version
- description
- license
公開するつもりがないのであれば、ここら辺は気にしなくてOK
dependencies
そのパッケージが依存する別のパッケージがここに記入されていく。
例えば、Webpackをnpmでインストールすると、ここに記入されていく。
devDependencies
こちらもパッケージが依存する別のパッケージがここに記入されていく。
dependenciesとの違いは、dependenciesは実行に必要なもの。devDependenciesはテストや開発に必要なもの。
として分類できる。
チルダ~,キャレット^について
dependenciesやdevDependenciesにはチルダ~,キャレット^という記法が使われる。それぞれの意味は下記のとおり。
- チルダ
~:メジャーバージョン,マイナーバージョンは一致。それ以下(パッチ)は指定されたもの以上 - キャレット
^:メジャーバージョンは一致。それ以下(マイナー,パッチ)は指定されたもの以上
ということを指す。バージョンを固定したい場合は、package-lock.jsonを使えば良い。
scripts
コマンドのエイリアスを指定することができる。指定したコマンドはnpm run <コマンド名>で実行することができる。その中でも特別なコマンド名を指定することもできる
start
コマンド名をstartに指定しておくと、
npm startで実行できるようになる。
test
コマンド名をtestに指定しておくと、
npm testで実行できるようになる。
pre<コマンド名>
<コマンド名>が実行される直前に実行するコマンドを指定できる。
例えば、hogeとprehogeというコマンドを指定している場合、npm run hogeを実行するとhoge実行前に自動的にprehogeが実行される。
post<コマンド名>
pre<コマンド名>の「直後」版
main
そのパッケージをimportする時に最初のJavaScriptファイルを指定する。公開しない限り、重要ではない。
しかし、他のパッケージがどこから始まっているのか確認するときに便利なので知っておいたほうが良い。
基礎的なところをまとめた。他にもあるので、ググってみてほしい。
パッケージをインストール
dependenciesに自動的に追加される
npm install <パッケージ名>
devDependenciesに追加したい場合はオプション-Dをつける
npm install -D <パッケージ名>
バージョン指定
npm <パッケージ名>@<バージョン>
最新版のインストールは下記のようにする
npm <パッケージ名>@latest
パッケージをアンインストール
npm uninstall <パッケージ名>
以上。軽くまとめておきました!
package.jsonについて、少し理解しずらかったので別記事でまとめたいと思います。