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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions