Summary
@dashcommerce/core@0.1.4 (latest) can't be installed alongside current EmDash. Its
peerDependencies pin emdash ">=0.5.0 <0.7.0", but EmDash is now at 0.18.0.
Installing normally fails ERESOLVE; force-installing breaks the production build
because 0.6-era admin/editor deps get dragged in and collide with 0.18.
The good news: the seed format is still compatible — dashcommerce-merge-seed
and emdash seed work fine on 0.18 (details below). The blocker is the peer range
and the bundled @emdash-cms/* admin/editor versions, not the data model.
Environment
emdash: 0.18.0 (current latest)
@dashcommerce/core: 0.1.4 (latest on npm)
- Node: 22.x, npm, Astro +
@astrojs/cloudflare adapter (Workers/D1/R2)
Repro
- In an EmDash 0.18 project:
npm install @dashcommerce/core
→ fails:
npm error peer emdash@">=0.5.0 <0.7.0" from @dashcommerce/core@0.1.4
npm error Conflicting peer dependency: emdash@0.18.0
- Retry with
npm install @dashcommerce/core --legacy-peer-deps → installs.
- Register the plugin in
astro.config.mjs:
import { dashcommerce } from "@dashcommerce/core";
// ...inside emdash({ plugins: [ ...existing, dashcommerce() ] })
npm run build → fails:
✘ [ERROR] Could not resolve "@tiptap/extension-collaboration"
node_modules/@tiptap/extension-drag-handle/dist/index.js:7:31
✘ [ERROR] Could not resolve "@tiptap/y-tiptap"
node_modules/@tiptap/extension-drag-handle/dist/index.js:13:7
The forced install pulls @emdash-cms/admin@^0.6.0 (and a matching @tiptap/*
tree) that conflict with the versions EmDash 0.18 ships, breaking the admin
editor bundle.
What does work on 0.18
npx dashcommerce-merge-seed --with-demo-catalog → merges the DashCommerce
collection + taxonomies + 6 demo products into seed/seed.json correctly.
npx emdash seed --on-conflict=update → applies cleanly:
Collections: 2 created, Fields: 29 created, Taxonomies: 2 (10 terms), Content: 6 products created. No schema/validation errors.
So the Portable Text / collection / seed schema is forward-compatible; it's the
runtime/peer surface that's stale.
What I think needs to happen
- Bump
peerDependencies.emdash to cover current releases, e.g.
">=0.5.0 <0.19.0" (or whatever range you can verify) and publish a new version.
- Realign the
@emdash-cms/* deps (@emdash-cms/admin, etc.) and the bundled
@tiptap/* versions to match what EmDash 0.18 ships, so the admin editor bundle
resolves. Ideally treat @emdash-cms/admin as a peer rather than pinning ^0.6.0.
- Re-verify the plugin descriptor + entries against the current plugin API —
dashcommerce(), the sandbox entry, and the admin UI entry — since the plugin
loader/sandbox contract has moved a lot between 0.7 → 0.18.
- Consider a CI matrix building against the latest EmDash so the peer range doesn't
silently fall behind (EmDash is releasing minors fast).
Happy to test a prerelease against an EmDash 0.18 project on Cloudflare Workers and
report back. Thanks for open-sourcing this!
Summary
@dashcommerce/core@0.1.4(latest) can't be installed alongside current EmDash. ItspeerDependenciespinemdash ">=0.5.0 <0.7.0", but EmDash is now at 0.18.0.Installing normally fails
ERESOLVE; force-installing breaks the production buildbecause 0.6-era admin/editor deps get dragged in and collide with 0.18.
The good news: the seed format is still compatible —
dashcommerce-merge-seedand
emdash seedwork fine on 0.18 (details below). The blocker is the peer rangeand the bundled
@emdash-cms/*admin/editor versions, not the data model.Environment
emdash: 0.18.0 (current latest)@dashcommerce/core: 0.1.4 (latest on npm)@astrojs/cloudflareadapter (Workers/D1/R2)Repro
npm install @dashcommerce/core→ fails:
npm install @dashcommerce/core --legacy-peer-deps→ installs.astro.config.mjs:npm run build→ fails:@emdash-cms/admin@^0.6.0(and a matching@tiptap/*tree) that conflict with the versions EmDash 0.18 ships, breaking the admin
editor bundle.
What does work on 0.18
npx dashcommerce-merge-seed --with-demo-catalog→ merges the DashCommercecollection + taxonomies + 6 demo products into
seed/seed.jsoncorrectly.npx emdash seed --on-conflict=update→ applies cleanly:Collections: 2 created, Fields: 29 created, Taxonomies: 2 (10 terms), Content: 6 products created. No schema/validation errors.So the Portable Text / collection / seed schema is forward-compatible; it's the
runtime/peer surface that's stale.
What I think needs to happen
peerDependencies.emdashto cover current releases, e.g.">=0.5.0 <0.19.0"(or whatever range you can verify) and publish a new version.@emdash-cms/*deps (@emdash-cms/admin, etc.) and the bundled@tiptap/*versions to match what EmDash 0.18 ships, so the admin editor bundleresolves. Ideally treat
@emdash-cms/adminas a peer rather than pinning^0.6.0.dashcommerce(), thesandboxentry, and theadminUI entry — since the pluginloader/sandbox contract has moved a lot between 0.7 → 0.18.
silently fall behind (EmDash is releasing minors fast).
Happy to test a prerelease against an EmDash 0.18 project on Cloudflare Workers and
report back. Thanks for open-sourcing this!