Merge package.json

Merge package manifests with explicit dependency, script, and field precedence.

freeworks offlinenothing uploaded
Toolpackage.json Merger
Input
Output
—

How it works

JSON objects are merged by key, dependency maps combine, and scalar conflicts use the selected source precedence. Arrays and scripts follow an explicit replace-or-combine policy.

  • Later input precedence suits environment overlays.
  • Dependency maps can add one package without copying the base.

Worked example

Merge two package.json files
Deep merge dependencies from two package files
Input
											Input1: {"name":"app","dependencies":{"react":"^18.0.0"}}
Input2: {"dependencies":{"lodash":"^4.17.0"},"devDependencies":{"vitest":"^1.0.0"}}
										
Output
												Original: {
  "name": "app",
  "dependencies": {
    "react": "^18.0.0",
    "lodash": "^4.17.0"
  },
  "devDependencies": {
    "vitest": "^1.0.0"
  }
}
Modified: # Merge Summary
Added keys: devDependencies
Updated keys: dependencies
											

When to use this

Monorepos, release manifests, and project templates merge package metadata.

Edge cases

  • Conflicting dependency versions need a precedence decision.
  • Replacing scripts can remove lifecycle hooks.
  • Name and version fields can become inconsistent across overlays.

References