Versioning & Packages

package.json編集

1つのマニフェストを編集し、エラーの位置と依存関係の順序を確認できます。

package.json編集

マニフェスト入力

整形結果

このブラウザー内で処理します。レジストリ照会やスクリプト実行はしません。

項目説明と制限

nameはパッケージ名です。新規パッケージの規則で確認し、ローカルプロジェクトでは省略できます。

内蔵のマニフェスト規則、名前、ルートのバージョンを確認します。他のツール設定は保持しますが専用検証はしません。

1つのオブジェクト、100,000 UTF-16コード単位、深さ100まで。安全でない整数やオーバーフローは拒否。依存指定は文字列かどうかのみ確認します。

依存グループ

dependencies: 0 · devDependencies: 0 · peerDependencies: 0 · optionalDependencies: 0

表示する依存項目がありません。

入力または設定が変わりました。出力前に再検証してください。

手作業でマージした後は、JSONとして正しくても依存関係の値やパッケージ名に問題が残ることがあります。package.json編集では構文と項目の検証を分けて確認できます。

最初の例は公開しないプロジェクトです。同じパッケージが複数の依存グループに現れても自動削除せず、それぞれの役割を残して表示します。

package.json編集で確認できること

条件付きエクスポートの順序を守る

package.json編集の並べ替え対象はdependencies、devDependencies、peerDependencies、optionalDependenciesの内部だけです。scriptsやexports、トップレベルの順序は維持するため、条件の優先順位を変えずに差分を読みやすくできます。

4つの依存グループ内だけが並べ替わり、隣のエクスポート分岐は動かない図。

反映前のプレビューと一度の取り消し

結果は入力と別に表示します。結果の反映、サンプル読込、消去は置換内容と文字数を確認してから実行します。元に戻すと、入力と結果の両方が以前の状態に戻ります。

元のマニフェストと別のプレビューを、反映と取り消しの矢印でつないだ図。

元の内容を残しながら修正する

01

自動検証を必要に応じて止める

編集が止まってから350ミリ秒後に検証します。自動をオフにすると実行ボタンが現れ、CtrlまたはCmdとEnterでも実行できます。入力や字下げを変えた時点で古い結果の出力を無効にします。

02

並べ替わったグループ数を見る

依存関係のソートは結果だけに反映されます。状態欄には実際に順序が変わったグループ数が出ます。元の順序に戻す設定は入力を基準にし、バージョンの更新やグループ間の移動は行いません。

03

比較してから入力へ反映する

検証済みの結果は反映前でもコピーやダウンロードができます。入力へ反映する操作では置換プレビューを確認します。取り消しは以前の入力と結果を一緒に復元します。

構文・名前・依存グループを分けて見る

元の位置でエラーを確認

package.json検証はコメント、末尾のカンマ、重複キー、オブジェクト以外のルートを拒否します。行・列とJSON Pointerは元の入力に対応し、スラッシュを含む依存名も区別できます。

公開名とルートバージョンの検証

npmパッケージ名はルートのnameでは新規パッケージの規則、依存キーでは既存名を許容する規則で確認します。versionがあればnode-semverで解析し、省略されていれば必須とは扱いません。

依存関係の役割を読み比べる

各グループに名称と指定文字列を表示し、長い一覧は100行ずつ追加できます。項目説明では実行時、開発時、peer、optionalの違いを確認でき、編集元は常にJSON入力です。

字下げを選んで保存

package.json整形は2スペース、4スペース、タブに対応します。任意の独自項目と数値の表記を維持し、package.jsonという名前で結果を保存できます。

検証の対象と対象外

内蔵スキーマの範囲
SchemaStore由来の内蔵ルールで構造を確認し、privateは真偽値に限定します。ESLintやPrettierなどの設定は残しますが、専用スキーマでは検証しません。入力の$schemaを取得することもありません。
依存指定は文字列として扱う
範囲、タグ、Git URL、ローカルパス、エイリアス、workspace指定は変更しません。インストール可能性、バージョンの存在、新しさ、脆弱性までは判断できません。
コマンドは実行しない
scriptsは文字列として確認するだけです。依存のインストール、公開、ロックファイルの更新、別のワークスペースファイルの読込は行わず、公開可能という保証も出しません。
4つのマップ以外は並べ替えない
グループをまたいで依存を移動したり、重複を削除したりしません。exports、imports、配列、scriptsの順序を保ちます。文字列のエスケープ表記は整形時に変わる場合があります。
大きさと精度の制限
入力は100,000 UTF-16コード単位、深さ100までのJSONオブジェクトです。安全な整数範囲を超える値やオーバーフローは拒否します。診断は最大50件で、失敗した結果や古い結果は出力できません。

package.json編集のよくある質問

package.jsonにコメントを追加するには?

標準JSONは行コメントやブロックコメントを認めません。このツールも自動削除せずにエラーを表示します。説明用の独自項目を使う場合は普通のデータとなるため、ほかのプロジェクトツールが許容するかを確認してください。

dependencies、devDependencies、peerDependenciesはどう違いますか?

dependenciesは実行時、devDependenciesは開発やテストの依存です。peerDependenciesは利用側に求める互換性を表し、optionalDependenciesはインストール失敗を許容します。このツールは分類を自動で変更しません。

パッケージをインストールせずにpackage.jsonの依存関係をアルファベット順にできますか?

できます。4種類の依存マップのキーをブラウザー内で並べ替えるため、追加パッケージのインストールは不要です。変更されたグループ数と結果を確認して保存してください。条件付きエクスポートの順序は変わりません。

package.jsonのnameがパターンに一致しないと表示されるのはなぜですか?

新しいパッケージ名には小文字、URLで使える文字、スコープ込みで214文字以下などの規則があります。@team/widgetのような名前も検証できますが、名前が空いているか、所有権があるかは確認しません。

package.jsonのバージョン指定で~と^はどう違いますか?

通常のゼロ以外のメジャーバージョンでは、~1.2.3は主にパッチ更新、^1.2.3は互換性のあるマイナー更新も許します。メジャーがゼロの場合やプレリリースは別の規則があります。本ツールは指定を解決せず保存します。

最小限のpackage.jsonに必要な項目は何ですか?

公開しないプロジェクトではnpmはnameとversionの省略を認めています。そのため空オブジェクトもこの構造検証を通ります。実際の公開には追加の情報や環境確認が必要です。

追加してほしい検証項目はありますか?

次の変更を確認する

package.json編集で小さな例から始め、依存グループとエラー位置を確かめてから入力へ反映してください。