Affected Packages
pm, extension-text-style, ...
Version(s)
3.19.0
Bug Description
When pinning all Tiptap packages to a specific version (e.g. 3.19.0) in package.json to avoid unexpected upgrades, npm fails with a dependency resolution error.
Example dependencies:
"@tiptap/extension-color": "3.19.0",
"@tiptap/extension-font-family": "3.19.0",
"@tiptap/extension-highlight": "3.19.0",
"@tiptap/extension-image": "3.19.0",
"@tiptap/extension-link": "3.19.0",
"@tiptap/extension-placeholder": "3.19.0",
"@tiptap/extension-table": "3.19.0",
"@tiptap/extension-table-cell": "3.19.0",
"@tiptap/extension-table-header": "3.19.0",
"@tiptap/extension-table-row": "3.19.0",
"@tiptap/extension-text-align": "3.19.0",
"@tiptap/extension-text-style": "3.19.0",
"@tiptap/extension-underline": "3.19.0",
"@tiptap/pm": "3.19.0",
"@tiptap/starter-kit": "3.19.0",
"@tiptap/vue-3": "3.19.0"
Running npm install results in:
ERESOLVE unable to resolve dependency tree
Because @tiptap/extension-* packages declare:
peerDependencies:
"@tiptap/core": "^3.19.0"
npm resolves this to the latest available version (e.g. 3.20.1), which then requires:
peer "@tiptap/pm": "^3.20.1"
This causes a conflict when the project intentionally pins @tiptap/pm to 3.19.0.
Browser Used
Chrome
Code Example URL
No response
Expected Behavior
Tiptap packages appear to be designed to be version-synchronized across the ecosystem. In that case, using a broad peer dependency range (^3.19.0) may lead to incompatible installations.
Additional Context (Optional)
A consistent solution:
tighten peerDependencies between packages
Dependency Updates