0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

package.jsonとは、Node.jsプロジェクトに必要な設定を記述したマニフェストファイルです。

主に以下の情報が含まれます。

  • パッケージの基本情報
  • エントリーポイントと構成
  • 依存関係
  • スクリプト
  • パブリッシュ関連

詳しく見ていきましょう。

package.jsonの各フィールド詳細

1. パッケージの基本情報

フィールド 説明
name string パッケージ名(スコープ付き可:@scope/package-name)。公開する場合はユニークな名称をつける必要がある1
npmに公開する際の識別子。
小文字で、スペースは使用できない。ハイフン(-)、ドット(.)、アンダースコア(_)は使用可能。
version string セマンティックバージョン(例: 1.0.0)。公開する場合は必須1
description string パッケージの簡単な説明。name/keywordsと共にnpm searchの対象。
keywords string[] npm検索に役立つキーワード配列。
repository object/string Github等のレポジトリ。主に contributor 向け
homepage string プロジェクトのホームページURL。
bugs object/string バグ報告用URLまたはオブジェクト({ url, email })。
license string ライセンス(例: MIT)。
古くはobject/object[]でも定義されていたが、現在は非推奨。
非公開プロジェクトではprivate: trueに加えてlicense: "UNLICENSED"と併記すると良い?2
author string/object 作者情報。
例: "Your Name <you@example.com> (https://example.com)" または { name, email, url }
contributors object[] 複数の共同作者をリスト形式で指定。オブジェクト構造はauthorに同じ。

2. エントリーポイントと構成

フィールド 説明
main string エントリーポイント(例: dist/index.js)。
exports object/string mainの代替フィールド。新規パッケージではこちらが推奨3
複数のエントリーポイントや、条件付きのエントリー解決、定義されたエントリーポイント以外の防止が可能
browser string/object ブラウザ環境向けエントリーポイント、またはバンドル対象の指定。
vitewebpack等のbundler
bin string/object CLI実行用スクリプトのパス(単体/複数指定可)。
types / typings string TypeScript定義ファイルのパス(例: index.d.ts)。非標準フィールド?
files string[] パッケージに含めるファイル/ディレクトリ一覧。

3. 依存関係

フィールド 説明
dependencies object 本番用依存(npm installでインストールされる)。
devDependencies object 開発用依存(--save-dev で追加される)。
peerDependencies object 実行時にユーザー側で用意すべき依存(例: Reactライブラリ)。
optionalDependencies object インストール失敗してもエラーにならない依存。
bundledDependencies / bundleDependencies string[] パッケージに同梱する依存(npm pack 時などに利用)。

4. スクリプト

フィールド 説明
scripts object npm runで実行可能なスクリプト群(例: build, test)。
pre/post スクリプト string prebuild, postinstall などのフックスクリプト。

5. パブリッシュ関連

フィールド 説明
private boolean trueにするとnpmに公開できなくなる(社内パッケージなどに)。
publishConfig object npm publish時の設定(latestタグをつけられないようにする等)。
engines object 対応Node.jsやnpmのバージョンを指定。
os string[] 対応OS(例: ["darwin", "linux"])。
cpu string[] 対応CPUアーキテクチャ。

6. その他の設定

フィールド 説明
config object ユーザー定義の設定。npmスクリプト内で npm_package_config_xxx で参照可能。
man string/string[] CLIパッケージのmanページパス。
workspaces string[]/object monorepo構成で使うワークスペース定義。
eslintConfig, babel, jest, prettier など object 各種ツール用の設定。ツールごとに異なるが、package.jsonに含める方式も多い。

7. その他非標準フィールド

フィールド 説明
husky, lint-staged object Gitフック連携に使われる設定(husky, lint-stagedなど)。
storybook, vite, next など object 各種ビルド/実行ツール特有の設定。
volta, pnpm, yarn object 使用ツールによるバージョン固定や設定(例: VoltaのNode.js固定)。
  1. npm Docs より。
    公開しない場合は省略可能。 2

  2. npm Docs

  3. nodejs.orgより

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?