miyabihitoの日記

個人的な技術メモ

package.json - Node.js

package.json

詳細は、ドキュメント参照のこと

name

パッケージの名称。
jsやnodeといった言葉は、含めるべきではない。

version

パッケージのバージョン。

description

パッケージの説明。
npm searchの検索対象。

license

単純な指定であれば、下記の「Identifier」を指定するとよい。
https://spdx.org/licenses/

author

作者
下記のフォーマットがシンプル name (url)

main

パッケージが、requireされた時に実行されるファイル。
指定されていない時は、nodeのルールに従って実行される。

bin

実行可能ファイルの指定。
ここに指定されたファイルは、
グローバルインストールの時、prefix/bin/
ローカルインストールの時、./node_modules/.bin/
シンボリックリンクが張られる。

repository

パッケージのソースコードリポジトリを指定。
指定内容は、下記のフォーマットが推奨。

{ "type" : "git", "url" : "http://github.com/npm/npm.git" }

scripts

様々なタイミングで実行されるスクリプトを指定する項目。
https://www.npmjs.org/doc/misc/npm-scripts.html

実際に使うのは下記くらいか。

  • start
  • test

install,postinsall等を使って、ユーザの環境でセットアップ作業をさせるのは あまり好ましくないため。(全ての環境に対応するのは厳しい)

package.jsonやnpmの設定値を、環境変数として読めるので、色々出来そうではある。

dependencies

パッケージを利用するのに必要な依存パッケージの指定。
キーにパッケージ名、値にバージョン指定またはtarballかgitのURLを記載。

devDependencies

パッケージの開発に必要な依存パッケージの指定。
テスティングフレームワークや他の言語(CoffeeScriptyやTypeScriptなど)のためのパッケージ等。

optionalDependencies

オプションの依存パッケージ
存在しない場合や、インストールに失敗する場合でも許容される。

engines

パッケージを正常にインストールできるnpmのバージョンや、 正常に動作させられるnodeのバージョンの指定。
(engine-strictの設定が、trueになっていない限り、この記述は勧告に過ぎない)

preferGlobal

グローバルモードでのインストールを推奨するための指定。
trueを指定すると、ローカルモードでのインストール時に警告がなされる。

private

レジストリへの登録・公開を防止するための設定。
有効にするには、trueを指定する。

publishConfig

npm publish時の、既存を設定を上書く設定を指定する項目。
関連する設定は下記。

  • tag
  • registry