-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Esbuild: backwards-compatible mermaid.core.mjs
#3437
Esbuild: backwards-compatible mermaid.core.mjs
#3437
Conversation
When converting a `.jison` file into a CommonJS module, jison by default adds a main() function that calls `require("fs");` Even though the main function is never used in the browser, because `fs` is a Node.JS only module, this causes some esbuild issues. To disable this, we can just set an empty main to the jison generator.
The `mermaid.core.js` build was previously a UMD build that did not have `node_modules` bundled. This was designed for users to add `mermaid` to their own apps, then bundle with Webpack/ESBuild. Hence the bundle test in `cypress/platform/bundle-test.js`. As ESBuild does not support UMD, I've switched the `mermaid.core.js` to instead use ESM, as Mermaid now requires ESM (due to d3 requiring ESM). All modern bundlers also support ESM.
`mermaid.core.mjs` should be the default export. This is because it does not bundle `node_modules/`, allowing users of mermaid to bundle dependencies themselves, using Webpack/ESBuild/others.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow! I knew something was not really right with my approach, but didn't really know what. Was keeping the esbuild PR open because of that.
@aloisklink, can you suggest some tests we can add to makes sure downstream versions of mermaid doesn't break when we make changes like this? (Or atleast we know what breaks?).
The categories that I can think of:
Type | Integration | Examples |
---|---|---|
Projects that use bundlers. | import mermaid from 'mermaid' |
Live editor |
Websites that integrate directly using src | <script src="url/mermaid.min.js"> |
Mermaid documentation site |
Websites that integrate directly using src (esm) | <script src="url/mermaid.min.mjs" type="module"> |
? |
What other approaches might there be?
To be honest, it wasn't super obvious to me either. I had to do a bit of searching through the git history to realize what
This PR fixes the test for They're not 100% perfect, but those basic tests should cover all the obvious bugs 😄
|
'bundle-test': './cypress/platform/bundle-test.js', |
<script src="url/mermaid.min.js">
Tested everywhere in cypress/platform/*.html
For example:
mermaid/cypress/platform/gitgraph.html
Line 109 in 9d09018
<script src="./mermaid.js"></script> |
<script src="url/mermaid.min.mjs" type="module">
It doesn't look like this is tested anywhere currently.
I think we can just add another .html
file to cypress/platform/
that uses <script src="url/mermaid.min.mjs" type="module">
. We might also need to make a new .esbuild/serve.cjs
config so that the ESM build is also hosted.
Fix typo and add that `mermaid.core.*` is compatible with Vite.
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [mermaid](https://github.com/mermaid-js/mermaid) | [`9.1.7` -> `9.2.2`](https://renovatebot.com/diffs/npm/mermaid/9.1.7/9.2.2) | [![age](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/compatibility-slim/9.1.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/mermaid/9.2.2/confidence-slim/9.1.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mermaid-js/mermaid</summary> ### [`v9.2.2`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.2): 9.2.2 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.2.1...v9.2.2) #### What's Changed - \[9.2] fix(mermaid): fix `mermaid.render` types by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3768](https://github.com/mermaid-js/mermaid/pull/3768) - \[9.2] fix(mermaid): default mermaid back to CommonJS by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3767](https://github.com/mermaid-js/mermaid/pull/3767) - Fix lazy loading in webpack by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3774](https://github.com/mermaid-js/mermaid/pull/3774) **Full Changelog**: mermaid-js/mermaid@v9.2.1...v9.2.2 ### [`v9.2.1`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.1): 9.2.1 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.2.0...v9.2.1) #### What's Changed - \~~fix [#​3757](https://github.com/mermaid-js/mermaid/issues/3757) : Remove dynamic imports for lazy load causing issues for webpack~~ - chore: Update bug report template by [@​gibson042](https://github.com/gibson042) in [https://github.com/mermaid-js/mermaid/pull/3727](https://github.com/mermaid-js/mermaid/pull/3727) - Use issue templates and add diagram, theme and syntax proposal issue forms by [@​Andre601](https://github.com/Andre601) in [https://github.com/mermaid-js/mermaid/pull/2739](https://github.com/mermaid-js/mermaid/pull/2739) #### New Contributors - [@​Andre601](https://github.com/Andre601) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/2739](https://github.com/mermaid-js/mermaid/pull/2739) **Full Changelog**: mermaid-js/mermaid@v9.2.0...v9.2.1 ### [`v9.2.0`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.0): 9.2.0 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.1.7...v9.2.0) #### What's Changed ##### Features - Mindmaps by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3410](https://github.com/mermaid-js/mermaid/pull/3410) - Introducing TypeScript by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3336](https://github.com/mermaid-js/mermaid/pull/3336) - Auto transform `mermaid-example` in docs. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3401](https://github.com/mermaid-js/mermaid/pull/3401) - Creating detectors and moving out diagram specific code from the diag… by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3436](https://github.com/mermaid-js/mermaid/pull/3436) - feat(git): cherry-pick keyword supports tag attribute by [@​elliot-nelson](https://github.com/elliot-nelson) in [https://github.com/mermaid-js/mermaid/pull/3479](https://github.com/mermaid-js/mermaid/pull/3479) - Mindmaps replacing rendering algoritm with cose-bilkent by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3559](https://github.com/mermaid-js/mermaid/pull/3559) - 3561 theme color scales by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3562](https://github.com/mermaid-js/mermaid/pull/3562) - ESBuild by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3386](https://github.com/mermaid-js/mermaid/pull/3386) - (Beta) Lazy load import by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3592](https://github.com/mermaid-js/mermaid/pull/3592), [https://github.com/mermaid-js/mermaid/pull/3598](https://github.com/mermaid-js/mermaid/pull/3598) - 3061 making a monorepo by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3531](https://github.com/mermaid-js/mermaid/pull/3531) ##### Fixes - Feature decimal duration in second for gantt diagram by [@​vallsv](https://github.com/vallsv) in [https://github.com/mermaid-js/mermaid/pull/3360](https://github.com/mermaid-js/mermaid/pull/3360) - fix: fix passing a single Node to mermaid.init() by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3396](https://github.com/mermaid-js/mermaid/pull/3396) - fix [#​3407](https://github.com/mermaid-js/mermaid/issues/3407) Replace `div` with `pre` and format by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3408](https://github.com/mermaid-js/mermaid/pull/3408) - fix(git): support numeric branch names by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3392](https://github.com/mermaid-js/mermaid/pull/3392) - Add tests for C4 system context macros by [@​dbartholomae](https://github.com/dbartholomae) in [https://github.com/mermaid-js/mermaid/pull/3367](https://github.com/mermaid-js/mermaid/pull/3367) - Add nested test for parseGenericTypes by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3354](https://github.com/mermaid-js/mermaid/pull/3354) - Fix memoize by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3434](https://github.com/mermaid-js/mermaid/pull/3434) - fix(git): support single character branch names by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3464](https://github.com/mermaid-js/mermaid/pull/3464) - Replace GoogleAnalytics with Plausible by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3466](https://github.com/mermaid-js/mermaid/pull/3466) - Fix for issues in errorhandling and class diagrams after refactoring by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3470](https://github.com/mermaid-js/mermaid/pull/3470) - 3409 Fix for truncated tags in GitGraph by [@​ashishjain0512](https://github.com/ashishjain0512) in [https://github.com/mermaid-js/mermaid/pull/3454](https://github.com/mermaid-js/mermaid/pull/3454) - Fix broken cherry-pick parsing in gitgraph by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3480](https://github.com/mermaid-js/mermaid/pull/3480) - Fix CI `docs:lint` by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3493](https://github.com/mermaid-js/mermaid/pull/3493) - Fix user-journey leaking css by [@​lishid](https://github.com/lishid) in [https://github.com/mermaid-js/mermaid/pull/3510](https://github.com/mermaid-js/mermaid/pull/3510) - \[sequenceDiagrams] Support dashes in participant names by [@​ashleybartlett](https://github.com/ashleybartlett) in [https://github.com/mermaid-js/mermaid/pull/3524](https://github.com/mermaid-js/mermaid/pull/3524) - fix: ER dark theme attribute colors by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3512](https://github.com/mermaid-js/mermaid/pull/3512) - feat: ER diagram: allow other chars in a quoted entity name by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3516](https://github.com/mermaid-js/mermaid/pull/3516) - Arrow tip aligned to edge of box by [@​pbrolin47](https://github.com/pbrolin47) in [https://github.com/mermaid-js/mermaid/pull/3533](https://github.com/mermaid-js/mermaid/pull/3533) - Fixed labelText undefined behavior by [@​AndrewL-64](https://github.com/AndrewL-64) in [https://github.com/mermaid-js/mermaid/pull/3544](https://github.com/mermaid-js/mermaid/pull/3544) - Fix failing vitest unit tests by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3587](https://github.com/mermaid-js/mermaid/pull/3587) - fix: Import diagram by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3589](https://github.com/mermaid-js/mermaid/pull/3589) - Fix file name during "pnpm run dev" script by [@​vallsv](https://github.com/vallsv) in [https://github.com/mermaid-js/mermaid/pull/3608](https://github.com/mermaid-js/mermaid/pull/3608) - fix Detect diagram fallback by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3591](https://github.com/mermaid-js/mermaid/pull/3591) - fix: Dirty fix for sync render. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3633](https://github.com/mermaid-js/mermaid/pull/3633) - fix: Converts mindmapDB to TS by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3683](https://github.com/mermaid-js/mermaid/pull/3683) - Support `lazyLoadedDiagrams` when calling `initThrowsErrors` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3702](https://github.com/mermaid-js/mermaid/pull/3702) - \[9.2.0] Support `lazyLoadedDiagrams` when calling `initThrowsErrorsAsync` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3731](https://github.com/mermaid-js/mermaid/pull/3731) ##### Chores - build: run `build:prod` on `yarn prepare` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3404](https://github.com/mermaid-js/mermaid/pull/3404) - chore(deps-dev): bump [@​types/dompurify](https://github.com/types/dompurify) from 2.3.3 to 2.3.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3414](https://github.com/mermaid-js/mermaid/pull/3414) - chore(deps-dev): bump jest-environment-jsdom from 29.0.1 to 29.0.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3413](https://github.com/mermaid-js/mermaid/pull/3413) - chore(deps-dev): bump typescript from 4.7.4 to 4.8.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3411](https://github.com/mermaid-js/mermaid/pull/3411) - chore(deps-dev): bump babel-jest from 29.0.1 to 29.0.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3412](https://github.com/mermaid-js/mermaid/pull/3412) - chore: fix JSDOC [@​param](https://github.com/param), [@​returns](https://github.com/returns) lint errors by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3422](https://github.com/mermaid-js/mermaid/pull/3422) - style: forbid using `console` in mermaid src code by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3405](https://github.com/mermaid-js/mermaid/pull/3405) - Introduce stricter typescript linting by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3393](https://github.com/mermaid-js/mermaid/pull/3393) - Esbuild: backwards-compatible `mermaid.core.mjs` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3437](https://github.com/mermaid-js/mermaid/pull/3437) - fix(git): support unusual prefixes in branch name by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3438](https://github.com/mermaid-js/mermaid/pull/3438) - Re-enable coverage upload to coveralls by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3431](https://github.com/mermaid-js/mermaid/pull/3431) - chore(deps): bump actions/checkout from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3449](https://github.com/mermaid-js/mermaid/pull/3449) - chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3446](https://github.com/mermaid-js/mermaid/pull/3446) - chore(deps-dev): bump eslint from 8.23.0 to 8.23.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3440](https://github.com/mermaid-js/mermaid/pull/3440) - chore(deps-dev): bump babel-jest from 29.0.2 to 29.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3448](https://github.com/mermaid-js/mermaid/pull/3448) - chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3441](https://github.com/mermaid-js/mermaid/pull/3441) - chore(deps-dev): bump [@​babel/core](https://github.com/babel/core) from 7.18.13 to 7.19.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3447](https://github.com/mermaid-js/mermaid/pull/3447) - chore(deps-dev): bump [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) from 5.36.1 to 5.37.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3451](https://github.com/mermaid-js/mermaid/pull/3451) - chore(deps-dev): bump [@​babel/preset-env](https://github.com/babel/preset-env) from 7.18.10 to 7.19.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3442](https://github.com/mermaid-js/mermaid/pull/3442) - chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3445](https://github.com/mermaid-js/mermaid/pull/3445) - chore(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 5.36.1 to 5.37.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3457](https://github.com/mermaid-js/mermaid/pull/3457) - chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3458](https://github.com/mermaid-js/mermaid/pull/3458) - Cleanup & fix eslint warnings by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3453](https://github.com/mermaid-js/mermaid/pull/3453) - chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3450](https://github.com/mermaid-js/mermaid/pull/3450) - chore(deps): bump stylis from 4.1.1 to 4.1.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3439](https://github.com/mermaid-js/mermaid/pull/3439) - chore(deps): bump dompurify from 2.3.10 to 2.4.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3444](https://github.com/mermaid-js/mermaid/pull/3444) - chore(deps-dev): bump [@​types/lodash](https://github.com/types/lodash) from 4.14.184 to 4.14.185 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3489](https://github.com/mermaid-js/mermaid/pull/3489) - chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3490](https://github.com/mermaid-js/mermaid/pull/3490) - chore(deps-dev): bump eslint from 8.23.1 to 8.24.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3521](https://github.com/mermaid-js/mermaid/pull/3521) - chore(deps-dev): bump [@​types/prettier](https://github.com/types/prettier) from 2.7.0 to 2.7.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3520](https://github.com/mermaid-js/mermaid/pull/3520) - chore: fix demo chart pages by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3523](https://github.com/mermaid-js/mermaid/pull/3523) - Vitest by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3427](https://github.com/mermaid-js/mermaid/pull/3427) - Build mermaid using Vite by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3503](https://github.com/mermaid-js/mermaid/pull/3503) - Add "Debug Current Test File" configuration for VSCode by [@​pje](https://github.com/pje) in [https://github.com/mermaid-js/mermaid/pull/3509](https://github.com/mermaid-js/mermaid/pull/3509) - \[DevOps] Parallel E2E by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3498](https://github.com/mermaid-js/mermaid/pull/3498) - chore(deps-dev): update lint-staged requirement from ^13.0.0 to ^13.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3551](https://github.com/mermaid-js/mermaid/pull/3551) - chore(deps-dev): update start-server-and-test requirement from ^1.12.6 to ^1.14.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3553](https://github.com/mermaid-js/mermaid/pull/3553) - chore(deps-dev): update jsdom requirement from ^20.0.0 to ^20.0.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3552](https://github.com/mermaid-js/mermaid/pull/3552) - chore(deps-dev): update [@​types/express](https://github.com/types/express) requirement from ^4.17.13 to ^4.17.14 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3555](https://github.com/mermaid-js/mermaid/pull/3555) - chore(deps-dev): update [@​types/lodash](https://github.com/types/lodash) requirement from ^4.14.185 to ^4.14.186 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3556](https://github.com/mermaid-js/mermaid/pull/3556) - chore(deps-dev): update vitest requirement from ^0.23.1 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3557](https://github.com/mermaid-js/mermaid/pull/3557) - chore(deps-dev): update husky requirement from ^8.0.0 to ^8.0.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3558](https://github.com/mermaid-js/mermaid/pull/3558) - chore(deps-dev): update [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) requirement from ^5.37.0 to ^5.39.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3564](https://github.com/mermaid-js/mermaid/pull/3564) - chore(deps-dev): update [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) requirement from ^5.37.0 to ^5.39.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3565](https://github.com/mermaid-js/mermaid/pull/3565) - chore(deps): update [@​types/node](https://github.com/types/node) requirement from ^18.7.21 to ^18.8.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3566](https://github.com/mermaid-js/mermaid/pull/3566) - chore(deps-dev): update [@​vitest/coverage-c8](https://github.com/vitest/coverage-c8) requirement from ^0.23.2 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3567](https://github.com/mermaid-js/mermaid/pull/3567) - chore(deps-dev): update esbuild requirement from ^0.15.8 to ^0.15.10 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3569](https://github.com/mermaid-js/mermaid/pull/3569) - chore(deps-dev): update typescript requirement from ^4.8.3 to ^4.8.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3573](https://github.com/mermaid-js/mermaid/pull/3573) - chore(deps-dev): update [@​applitools/eyes-cypress](https://github.com/applitools/eyes-cypress) requirement from ^3.25.7 to ^3.27.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3568](https://github.com/mermaid-js/mermaid/pull/3568) - chore(deps-dev): update vite requirement from ^3.0.9 to ^3.1.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3570](https://github.com/mermaid-js/mermaid/pull/3570) - chore(deps-dev): update eslint-plugin-jest requirement from ^27.0.4 to ^27.1.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3571](https://github.com/mermaid-js/mermaid/pull/3571) - chore(deps-dev): update [@​commitlint/config-conventional](https://github.com/commitlint/config-conventional) requirement from ^17.0.0 to ^17.1.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3572](https://github.com/mermaid-js/mermaid/pull/3572) - Fix `docs:build` and `docs:verify` scripts by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3534](https://github.com/mermaid-js/mermaid/pull/3534) - Fix husky `pre-commit` rules by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3536](https://github.com/mermaid-js/mermaid/pull/3536) - Fix typos in README.md by [@​elv-nate](https://github.com/elv-nate) in [https://github.com/mermaid-js/mermaid/pull/3538](https://github.com/mermaid-js/mermaid/pull/3538) - fix(tests): E2E by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3574](https://github.com/mermaid-js/mermaid/pull/3574) - fix: pnpm clean in windows by [@​arpansaha13](https://github.com/arpansaha13) in [https://github.com/mermaid-js/mermaid/pull/3595](https://github.com/mermaid-js/mermaid/pull/3595) - Update Cypress to v10 and fix E2E errors by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3459](https://github.com/mermaid-js/mermaid/pull/3459) - ci(e2e-applitols): add applitools CI action by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3483](https://github.com/mermaid-js/mermaid/pull/3483) - Remove webpack & babel by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3452](https://github.com/mermaid-js/mermaid/pull/3452) - Add vitepress plugin by [@​emersonbottero](https://github.com/emersonbottero) in [https://github.com/mermaid-js/mermaid/pull/3476](https://github.com/mermaid-js/mermaid/pull/3476) - ci(e2e): fix e2e action when running from fork by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3519](https://github.com/mermaid-js/mermaid/pull/3519) - chore(deps-dev): update [@​vitest/ui](https://github.com/vitest/ui) requirement from ^0.23.2 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3549](https://github.com/mermaid-js/mermaid/pull/3549) - chore: Update demo diagrams for monorepo by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3545](https://github.com/mermaid-js/mermaid/pull/3545) - Sync `docs/` with `packages/mermaid/src/docs` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3586](https://github.com/mermaid-js/mermaid/pull/3586) - chore: Add volta by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3628](https://github.com/mermaid-js/mermaid/pull/3628) - chore: Node 18 by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3630](https://github.com/mermaid-js/mermaid/pull/3630) - Configure Renovate by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3627](https://github.com/mermaid-js/mermaid/pull/3627) ##### Docs - Added mermerd to integrations documentation by [@​KarnerTh](https://github.com/KarnerTh) in [https://github.com/mermaid-js/mermaid/pull/3399](https://github.com/mermaid-js/mermaid/pull/3399) - Fix typo in documentation by [@​dbartholomae](https://github.com/dbartholomae) in [https://github.com/mermaid-js/mermaid/pull/3403](https://github.com/mermaid-js/mermaid/pull/3403) - Update duplicate copy pasted directive description by [@​mrmanc](https://github.com/mrmanc) in [https://github.com/mermaid-js/mermaid/pull/3415](https://github.com/mermaid-js/mermaid/pull/3415) - Docs/bug 3417 by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3419](https://github.com/mermaid-js/mermaid/pull/3419) - Docs: add '..auto generated..' to .html documentation files by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3420](https://github.com/mermaid-js/mermaid/pull/3420) - Mention obsidian has native support for mermaid by [@​IanLee1521](https://github.com/IanLee1521) in [https://github.com/mermaid-js/mermaid/pull/3513](https://github.com/mermaid-js/mermaid/pull/3513) - docs: replace `yarn` with `pnpm` in dev guide by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3535](https://github.com/mermaid-js/mermaid/pull/3535) - Corrected theme variables reference table layout by [@​marcastel](https://github.com/marcastel) in [https://github.com/mermaid-js/mermaid/pull/3541](https://github.com/mermaid-js/mermaid/pull/3541) - Working New Documentation Vitepress by [@​emersonbottero](https://github.com/emersonbottero) in [https://github.com/mermaid-js/mermaid/pull/3515](https://github.com/mermaid-js/mermaid/pull/3515) - CODE_OF_CONDUCT Uploaded by [@​swoyam2609](https://github.com/swoyam2609) in [https://github.com/mermaid-js/mermaid/pull/3578](https://github.com/mermaid-js/mermaid/pull/3578) - Automated docs spell-checking via GitHub Actions (and address all reported issues) by [@​SeanKilleen](https://github.com/SeanKilleen) in [https://github.com/mermaid-js/mermaid/pull/3600](https://github.com/mermaid-js/mermaid/pull/3600) - docs:Improved keywords in index.html by [@​aryandeelwal](https://github.com/aryandeelwal) in [https://github.com/mermaid-js/mermaid/pull/3579](https://github.com/mermaid-js/mermaid/pull/3579) - Contribution.md updates by [@​Aniket1026](https://github.com/Aniket1026) in [https://github.com/mermaid-js/mermaid/pull/3614](https://github.com/mermaid-js/mermaid/pull/3614) - docs: Add mermaid version to script URL by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3596](https://github.com/mermaid-js/mermaid/pull/3596) #### New Contributors - [@​KarnerTh](https://github.com/KarnerTh) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3399](https://github.com/mermaid-js/mermaid/pull/3399) - [@​mrmanc](https://github.com/mrmanc) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3415](https://github.com/mermaid-js/mermaid/pull/3415) - [@​elliot-nelson](https://github.com/elliot-nelson) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3479](https://github.com/mermaid-js/mermaid/pull/3479) - [@​emersonbottero](https://github.com/emersonbottero) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3476](https://github.com/mermaid-js/mermaid/pull/3476) - [@​pje](https://github.com/pje) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3509](https://github.com/mermaid-js/mermaid/pull/3509) - [@​IanLee1521](https://github.com/IanLee1521) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3513](https://github.com/mermaid-js/mermaid/pull/3513) - [@​ashleybartlett](https://github.com/ashleybartlett) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3524](https://github.com/mermaid-js/mermaid/pull/3524) - [@​pbrolin47](https://github.com/pbrolin47) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3533](https://github.com/mermaid-js/mermaid/pull/3533) - [@​elv-nate](https://github.com/elv-nate) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3538](https://github.com/mermaid-js/mermaid/pull/3538) - [@​marcastel](https://github.com/marcastel) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3541](https://github.com/mermaid-js/mermaid/pull/3541) - [@​AndrewL-64](https://github.com/AndrewL-64) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3544](https://github.com/mermaid-js/mermaid/pull/3544) - [@​swoyam2609](https://github.com/swoyam2609) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3578](https://github.com/mermaid-js/mermaid/pull/3578) - [@​SeanKilleen](https://github.com/SeanKilleen) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3600](https://github.com/mermaid-js/mermaid/pull/3600) - [@​aryandeelwal](https://github.com/aryandeelwal) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3579](https://github.com/mermaid-js/mermaid/pull/3579) - [@​Aniket1026](https://github.com/Aniket1026) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3614](https://github.com/mermaid-js/mermaid/pull/3614) **Full Changelog**: mermaid-js/mermaid@v9.1.7...v9.2.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [x] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/BirthdayResearch/contented). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMi4wIiwidXBkYXRlZEluVmVyIjoiMzQuMTkuMCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
I am attempting to use ngx-markdown within Angular 15+. The instructions indicate to install the npm package for mermaid and then add the mermaid.min.js to the scripts array within angular.json. With the version of mermaid I installed, which is probably the most current version, there is no mermaid.min.js. I am a bit new to esm, webpack and Angular in terms of bundling and modules. Not sure this is the correct place but any suggestions on how to use the most current mermaid scripts within Angular 15+? I am contemplating getting the file from the CDN but just wanted to see if someone can steer me in the correct direction in terms of loading esm files (I guess) within Angular. |
Hi @jayhamilton, there's a PR open to add back a single-file UMD Hopefully it will get merged, and you'd just be able to use the same old instructions with the next Mermaid release! Otherwise, you might have better luck asking at https://stackoverflow.com/questions/tagged/angular or the |
📑 Summary
Note: This PR targets
sidv/esbuild
, aka PR #3386The
mermaid.core.js
build was previously a UMD build that did not havenode_modules
bundled.This was designed for users to add
mermaid
to their own apps, then bundle with Webpack/ESBuild. Hence the bundle test incypress/platform/bundle-test.js
.After this PR, there will be three different types of files in the
dist/
folder:mermaid{.min}.js
- Minified Bundled IIFE - For use in browsers from a CDN that don't support ESM yet.mermaid.esm{.min}.mjs
- Minified Bundled ESM - For use in browsers from a CDN that do support ESM.mermaid.core.mjs
- Minified unbundled ESM. For use when creating your own apps usingNPM
/yarn
. Does not bundlenode_modules/
, as your Webpack/ESBuild/vite should bundle them.📏 Design Decisions
I had to slightly modify the
.jison
parser, as by default it adds an unusedmain()
that has arequire("fs");
. As thismain()
function is never used, I've just overrode it with an empty function.Possible breaking change (low risk)
As ESBuild does not support UMD, I've switched the
mermaid.core.js
to instead use ESM atmermaid.core.mjs
, as Mermaid now requires ESM (due to d3 requiring ESM).The switch from UMD to ESM shouldn't break anybody's configuration, because since Mermaid 8.12.0, ESM has been required due to d3 requiring ESM (see #2677).
Switching from
.core.js
to.core.mjs
probably won't cause any issues, since most people would useimport mermaid from "mermaid"
, and their bundler would automatically find the file by looking at thepackage.json
file.mermaid.core.js
: https://github.com/search?p=1&q=mermaid.core.js&type=Code📋 Tasks
Make sure you
cypress/platform/bundle-test.js
I've confirmed that
yarn dev
works after runningyarn add git+https://github.com/aloisklink/mermaid.git#esbuild-backwards-compatible-core-js
.targeteddevelop
branchsidv/esbuild
, aka PR ESBuild #3386