Skip to content

Incompatible with current EmDash (0.18.x) — peer range capped at <0.7.0; build breaks on admin editor deps #15

Description

@joeblew999

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 compatibledashcommerce-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

  1. 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
    
  2. Retry with npm install @dashcommerce/core --legacy-peer-deps → installs.
  3. Register the plugin in astro.config.mjs:
    import { dashcommerce } from "@dashcommerce/core";
    // ...inside emdash({ plugins: [ ...existing, dashcommerce() ] })
  4. npm run buildfails:
    ✘ [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

  1. 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.
  2. 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.
  3. 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.
  4. 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions