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