開発前の下ごしらえ(npm init)

メモ:

node.js のパッケージ(あえてライブラリと言ってみる)、Web系サービスもパッケージ、 node.js の機能を使って作るものはパッケージ。フロントエンドで開発する HTML や CSS もパッケージということでパッケージを管理するために便利な下準備を学んでいきます。

パッケージ管理のための初期設定

例えば、将来的に複数のプロジェクトをこなしたいので、取り纏めとして Project フォルダーを作成したとします。その配下に各プロジェクトのフォルダーを作成することとします。この例では、 blueleaf というプロジェクトのフォルダーを作成したとしています。

Project
    |- blueleaf

プロジェクトを効率よく、また不具合を少なくこなしていきたいので公開されているパッケージを使ってアプリケーションを構築することがあるかもしれません。このプロジェクトで作成する部品や外部から取得したパッケージ等をうまく管理してくれる機能が npm になります。

しかし、コマンドだけでは管理することができません。そこで、管理情報をまとめた package.json というファイルを作成します。package.json は、テキストエディタなどで直接作成することもできますが、次のコマンドを実行して作成することもできます。

プロジェクトフォルダーがカレントとなるよう移動しコマンドを実行します。

c:\projects\blueleaf>npm init

実行すると package.json に設定する内容を対話形式で聞いてくるので入力していきます。

c:\projects\blueleaf>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (blueleaf) [パッケージ名を入力]
version: (1.0.0) [バージョンを入力]
description: [説明を入力]
・・・・・
・・・
Is this OK? (yes)

初期設定時に聞かれる項目は、次の項目になります。name と version は必須項目となっており version の採番方法については、 About semantic versioning にガイドラインが公開されています。

  • name:パッケージの名前(必須)
  • version:パッケージのバージョン(必須)
  • description:パッケージの説明
  • entry point:プログラムへの主要なエントリポイント[package.json 内では main という項目]
  • test command:テスト用のコマンド[package.json 内では scripts に属する]
  • git repository:gitリポジトリのURL
  • keywords:キーワード。パッケージを公開した時の検索の助けになります。
  • author:著者
  • license:このパッケージのライセンス

対話形式で作成するのが面倒な場合は、次のコマンドを実行することでひな形を作成してくれます。

c:\projects\blueleaf>npm init -y
Wrote to c:\projects\blueleaf\package.json:

{
  "name": "blueleaf",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

とりあえず、パッケージ(プロジェクト)を管理する準備が整いました。次は、npm を使って開発環境を構築してみたいと思います。