カテゴリー
Node.js

package.jsonの中身

package.jsonの中身の例

{
  "name": "my-package",
  "description": "my first package ever",
  "license": "MIT",
  "version": "1.0.0",
  "bin": "./cli.js",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "axios": "^0.18.0"
  },
  "devDependencies": {
    "eslint": "^5.14.1"
  }
}

dependencies

本番環境で必要なパッケージが列挙されている

devDependencies

開発、テスト、デバッグ中にのみ必要なパッケージが列挙されている

例えば、Linter は開発中は必要ですが、本番は不要なので、devDependenciesに含める

バージョン指定の見方

前提として

例)4.17.1

と書かれていたら、

  • 一番右:メジャーバージョンは「4」
  • 真ん中:マイナーバージョンは「17」
  • 一番左:パッチバージョンは「1」

になります。

これを踏まえて

^(キャレット)

例)^4.17.1

→ メジャーバージョンは「4」と一致しかつマイナーバージョンは「17」以上

  • 4.18.x → OK
  • 4.20.x → OK
  • 5.0.0 → NG
  • 4.16.1→ NG

~(チルダ)

例)~4.17.1

→ メジャーバージョンは「4」かつマイナーバージョンは「17」と一致しかつパッチバージョンは「1」以上

  • 4.17.2 → OK
  • 4.17.5 → OK
  • 4.18.x → NG
  • 5.0.0 → NG
  • 4.16.x → NG

^(キャレット)、~(チルダ)なし

例)4.17.1

4.17.1 のみOK

scripts

コマンドのエイリアス

任意のコマンドに名前をつけることができる

main

なんかのパッケージをインポートするときのエントリポイント(?)が記載されている

bin

本パッケージを実行するときのCLIコマンドが記載されている

参考:

【初心者向け】NPMとpackage.jsonを概念的に理解する

カテゴリー
Node.js

Node.jsとかnpmとかごちゃごちゃなので整理してみた

タイトルの通りなので、整理してみました。

確認環境:

Windows10

node v12.18.4

npm 6.14.8

Node.jsとは

サーバーサイドのJavaScript

JavaScriptでWebアプリを作りたいと思ったら、事始めにNode.jsをインストールすることになるはず。

Node.jsをインストールすると、npmが使えるようになるはず。

Node.jsのインストール方法

いろいろある。

1 インストーラからインストール

手っ取り早い方法は、以下からインストーラをダウンロードしてインストールする。

Node.js 公式サイト

Node.js 公式サイト ダウンロード

インストールされていることを確認するためバージョンを表示する。

node --version

nodeでできることを確認するたには、nodeのヘルプを見るのがよいです。

node -h

2 Homebrewからインストール

macの場合、Homebrewを使ってインストールすることもできる。

Homebrewとは

macOS(またはLinux)用パッケージマネージャー

アップル(またはLinuxシステム)が提供していない必要なものをインストールとかアンインストールできる。

Homebrew 公式サイト

上記のサイトに記載されている方法で、まずはHomebrewをインストールして、

brew install node

でnode.jsをインストールする方法もあり。

3 nodebrewからインストール

macOS(またはLinux)の場合、nodebrewを使ってインストールすることもできる。

※ Homebrewと名前が似てますが、別物。

nodebrewとは

複数のバージョンのnodeを切り替えて使える、nodeの管理システム。

使い方はほぼ、以下のサイトに書いてあります。

nodebrew github

npm(Node Package Manager)とは

Node.jsのパッケージ管理システム。

例えば、jsのフレームワークexpressが使いたい場合に、npmでインストールしたり、いらなくなったパッケージをアンインストールしたりできる。

nodeをインストールしたら、npmコマンドが使えるようになります。

npmはグローバルとローカルを意識する

グローバルとローカルでパッケージがインストールされる場所やスコープが異なります。

ググってnpm関連の記事を読む時に、このことを頭のすみに置いといたほうが良いです。

特定のプロジェクトでしか使わないパッケージはローカルにインストールし、いつも使うパッケージはグローバルにインストールするのが良い。

ローカルにインストール

npm install [パッケージ名]

対象プロジェクトにだけパッケージがインストールされます。

対象プロジェクトの「node_modules」フォルダにパッケージがインストールされます。

グローバルにインストール

npm install -g [パッケージ名]

ローカルインストールと異なる点は「-g」オプションをつけること。

インストールしたパッケージはどこからでも使えます。

WindowsとかMacとか環境によって異なりますが、ホームディレクトリのあたりにパッケージはインストールされます。

npmのコマンド

npmのヘルプを表示

npm -h

npmのバージョンを表示

npm --version

インストールされたパッケージの一覧を表示

npm list
npm list -g

リストが長くなる場合は、

npm list --depth=0

のように「--depth」オプションで表示する階層を指定できます。

パッケージのアンインストール

npm uninstall [パッケージ名]
npm uninstall -g [パッケージ名]

package.jsonとは

そのプロジェクトのプロジェクト名とかバージョン情報とかパッケージ情報が書かれたもの

package-lock.jsonとは

プロジェクトのすべてのパッケージの依存関係(dependency)が書かれたもの

「npm install」で自動作成される。

package.json、package-lock.jsonの使われ方

プロジェクト(パッケージ)を公開するつもりがないなら、あまり気にする必要はない。

複数人で同じプロジェクトを分担して作業する時や、異なるマシンで作業する場合、package.json、package-lock.jsonファイルをもとに、まったく同じ依存関係(パッケージのバージョンとか)を実現できる。

package.json、package-lock.jsonファイルをプロジェクトのルートフォルダにコピーして

npm init

すると、package.json、package-lock.jsonファイルに基づいて、必要なパッケージをインストールしてくれる。

以下の記事がすごい参考になりました。

【初心者向け】NPMとpackage.jsonを概念的に理解する -Qiita