diff --git a/package.json b/package.json index 4d8c09ac8..bbe93377d 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "8.13.2", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid.core.js", + "module": "dist/mermaid.esm.min.js", "keywords": [ "diagram", "markdown", @@ -14,10 +15,12 @@ ], "scripts": { "build:development": "webpack --progress --color", - "build:production": "yarn build:development --mode production --config webpack.config.prod.babel.js", - "build": "yarn build:development && yarn build:production", + "build:umd": "yarn build:development --mode production --config webpack.config.prod.babel.js", + "build:esm": "yarn build:development --mode production --config webpack.config.prod.esm.babel.js", + "build:production": "concurrently \"yarn build:umd\" \"yarn build:esm\"", + "build": "concurrently \"yarn build:development\" \"yarn build:production\"", "postbuild": "documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md", - "build:watch": "yarn build --watch", + "build:watch": "yarn build:development --watch", "release": "yarn build", "lint": "eslint src", "e2e:depr": "yarn lint && jest e2e --config e2e/jest.config.js", @@ -67,6 +70,7 @@ "@percy/migrate": "^0.11.0", "babel-jest": "^27.0.6", "babel-loader": "^8.2.2", + "concurrently": "^6.2.2", "coveralls": "^3.0.2", "css-to-string-loader": "^0.1.3", "cypress": "8.5.0", @@ -101,4 +105,4 @@ "pre-push": "yarn test" } } -} +} \ No newline at end of file diff --git a/webpack.config.prod.esm.babel.js b/webpack.config.prod.esm.babel.js new file mode 100644 index 000000000..a4b3bbfa9 --- /dev/null +++ b/webpack.config.prod.esm.babel.js @@ -0,0 +1,13 @@ +import { jsConfig } from './webpack.config.base'; + +const minConfig = jsConfig(); +minConfig.mode = 'production'; +minConfig.output.library = { + type: 'module', +}; +minConfig.experiments = { + outputModule: true, +}; +minConfig.output.filename = '[name].esm.min.js'; + +export default [minConfig]; diff --git a/yarn.lock b/yarn.lock index 24e4fc367..f71747692 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3253,6 +3253,20 @@ concat-stream@~1.5.0: readable-stream "~2.0.0" typedarray "~0.0.5" +concurrently@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.2.2.tgz#81c11b85d9a7de56ad4388ff6aab4a94ddea51f2" + integrity sha512-7a45BjVakAl3pprLOeqaOoZfIWZRmdC68NkjyzPbKu0/pE6CRmqS3l8RG7Q2cX9LnRHkB0oPM6af8PS7NEQvYQ== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + rxjs "^6.6.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^16.2.0" + connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -4122,6 +4136,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +date-fns@^2.16.1: + version "2.24.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.24.0.tgz#7d86dc0d93c87b76b63d213b4413337cfd1c105d" + integrity sha512-6ujwvwgPID6zbI0o7UbURi2vlLDR9uP26+tW6Lg+Ji3w7dd0i3DOcjcClLjLPranT60SSEFBwdSyYwn/ZkPIuw== + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -8951,7 +8970,7 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= -rxjs@^6.6.6, rxjs@^6.6.7: +rxjs@^6.6.3, rxjs@^6.6.6, rxjs@^6.6.7: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -9298,6 +9317,11 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -9646,7 +9670,7 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0, supports-color@^8.1.1: +supports-color@^8.0.0, supports-color@^8.1.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -9886,6 +9910,11 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + trim-lines@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.3.tgz#839514be82428fd9e7ec89e35081afe8f6f93115"