PackageJsonジェネレータ

package.json
次へ

npm initを実行して11の指示に従う代わりに、フォームに情報を入力するだけで、整然として正しい構造を持つpackage.jsonファイルが自動生成されます。このジェネレータは、パッケージを検索可能かつ公開可能なものにするために必要な項目(名称、バージョン)、一般的に使用される項目(スクリプト、依存関係、devDependencies、エンジン)および重要な詳細情報(リポジトリ、バグ情報、キーワード、ライセンス)をすべて網羅しています。

package.jsonファイルを生成する方法

  1. 1

    名前とバージョンを入力してください

    名前はnpmのルールに従います:小文字のみ、URLで使用可能な形式、214文字未満。バージョンはsemver(例:0.1.0)です。

  2. 2

    モジュールタイプを選択してください

    CommonJS(デフォルト)または「type」:「module」のESM。Node.js 14以上のプロジェクトに適用されます。

  3. 3

    スクリプトを追加します

    スタート、ビルド、テスト、lint、これらのコマンドは`npm run <name>`で実行されます。

  4. 4

    リストの依存関係

    ランタイムパッケージは依存関係に、ツールは開発用依存関係に含まれます。

  5. 5

    メタデータを設定します

    説明、作成者、ライセンス、リポジトリURL、キーワード

  6. 6

    出力をコピーします

    プロジェクトのルートディレクトリ内の新しいpackage.jsonファイルに貼り付けます。

最も重要なフィールド

フィールド 必須? 注釈
name はい 小文字のみ、1~214文字、URL対応
version はい Semver(メジャー.マイナー.パッチ)
type いいえ ESM用は “module”。CommonJSでは省略可能
main 推奨済み CommonJS(index.js)のエントリポイント
exports 推奨済み 二重CJS/ESM対応の現代型エクスポートマップ
scripts 強く推奨します npm run <name>のコマンド
dependencies 必要に応じて ランタイムパッケージ
devDependencies 必要に応じて ビルドツール、テストランナー、リンター
engines あると便利 必要なNodeのバージョン範囲
license 公開時は必須 MITApache-2.0のようなSPDX識別子

Semverのチートシート

  • 1.0.0、major.minor.patch
  • ^1.0.0 – 1.x.x(>=1.0.0、<2.0.0)と互換性があります
  • ~1.0.0、パッチ更新のみ(>=1.0.0、<1.1.0)
  • >=1.0.0 <2.0.0、明示範囲
  • 1.0.0-beta.1、prerelease
  • latest、npmタグであり、バージョンではありません

npm install packageを実行する際のデフォルト値は^であり、これにより中断なしでのアップグレードが可能になります。

必要な標準スクリプト

{
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "build": "tsc",
    "test": "vitest",
    "lint": "eslint .",
    "format": "prettier --write ."
  }
}

タグ付けの落とし穴

  • 大文字を使用していません。 MyPackagenpm installを失敗させています。
  • スペースは使用しない。 ハイフンを使用してください:my-package
  • GitHubまたはnpmの組織における「Scope名」は、@org/から始まります(例:@acme/utils)。
  • 予約語です。 node_modulesfavicon.icocoreexpressはパッケージ名として使用できません。

ライセンスオプション

認められたSPDX識別子を選択してください:

  • MIT、最も許容度の高い一般的な選択肢です。
  • Apache-2.0、パテント権利を付与する許可型ライセンス。
  • ISC、MITに非常に似た極めて短いライセンスで、npmのデフォルト設定となっている。
  • GPL-3.0-or-later、コピーレフトです。
  • UNLICENSED、プライベートパッケージで、配布用ではありません。

誤ったまたは曖昧なライセンス文字列は、npmでのパブリッシュ時に警告をトリガーします。

よくある質問

依存関係は、ユーザーが自身のパッケージを消費するプロジェクト内でnpm installを実行した際にインストールされます。devDependenciesはパッケージ自体の開発環境にのみインストールされます。ランタイムパッケージはdependenciesに、テスト/ビルドツールはdevDependenciesに配置してください。

はい、アプリケーション向けに使用します。ロックファイルはバージョンを正確に指定し、異なるマシンやCI環境において再現可能なインストールを保証します。npmに公開されたライブラリパッケージについては、ロックファイルは任意で、ユーザーはそれぞれ独自のロックファイルを使用します。

パッケージをデフォルトでESM(インポート/エクスポートの構文)に設定する場合は限りません。この設定がなければ、.jsファイルはCommonJSとして扱われます。また、「タイプ」に関わらず、ESMファイルには.mjs、CommonJSファイルには.cjsを使用することも可能です。

コードがテストされたNodeのバージョンです。現在一般的な選択肢は"engines": {"node": ">=18"}です。これはエラーではなく警告ですが、ツールはこれを無視せず、ユーザーも正しくピン留めします。

関連ツール

このツールは他の言語でも利用できます