mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-21 17:26:45 +02:00
@@ -1,6 +1,6 @@
|
|||||||
const esbuild = require('esbuild');
|
const esbuild = require('esbuild');
|
||||||
const http = require('http');
|
const http = require('http');
|
||||||
const { iifeBuild, esmBuild, getEntryPoints } = require('./util.cjs');
|
const { iifeBuild, esmBuild } = require('./util.cjs');
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
|
|
||||||
// Start 2 esbuild servers. One for IIFE and one for ESM
|
// Start 2 esbuild servers. One for IIFE and one for ESM
|
||||||
@@ -13,11 +13,11 @@ const express = require('express');
|
|||||||
const getEntryPointsAndExtensions = (format) => {
|
const getEntryPointsAndExtensions = (format) => {
|
||||||
return {
|
return {
|
||||||
entryPoints: {
|
entryPoints: {
|
||||||
...getEntryPoints(format === 'iife' ? '' : '.esm'),
|
mermaid: './src/mermaid',
|
||||||
e2e: 'cypress/platform/viewer.js',
|
e2e: 'cypress/platform/viewer.js',
|
||||||
'bundle-test': 'cypress/platform/bundle-test.js',
|
'bundle-test': 'cypress/platform/bundle-test.js',
|
||||||
},
|
},
|
||||||
outExtension: { '.js': format === 'iife' ? '.js' : '.mjs' },
|
outExtension: { '.js': format === 'iife' ? '.js' : '.esm.mjs' },
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -53,13 +53,16 @@ const generateHandler = (server) => {
|
|||||||
const iifeServer = await esbuild.serve(
|
const iifeServer = await esbuild.serve(
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
...iifeBuild({ minify: false }),
|
...iifeBuild({ minify: false, outfile: undefined, outdir: 'dist' }),
|
||||||
...getEntryPointsAndExtensions('iife'),
|
...getEntryPointsAndExtensions('iife'),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const esmServer = await esbuild.serve(
|
const esmServer = await esbuild.serve(
|
||||||
{},
|
{},
|
||||||
{ ...esmBuild({ minify: false }), ...getEntryPointsAndExtensions('esm') }
|
{
|
||||||
|
...esmBuild({ minify: false, outfile: undefined, outdir: 'dist' }),
|
||||||
|
...getEntryPointsAndExtensions('esm'),
|
||||||
|
}
|
||||||
);
|
);
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
@@ -19,21 +19,14 @@ const buildOptions = (override = {}) => {
|
|||||||
tsconfig: 'tsconfig.json',
|
tsconfig: 'tsconfig.json',
|
||||||
resolveExtensions: ['.ts', '.js', '.mjs', '.json', '.jison'],
|
resolveExtensions: ['.ts', '.js', '.mjs', '.json', '.jison'],
|
||||||
external: ['require', 'fs', 'path'],
|
external: ['require', 'fs', 'path'],
|
||||||
outdir: 'dist',
|
entryPoints: ['src/mermaid.ts'],
|
||||||
|
outfile: 'dist/mermaid.min.js',
|
||||||
plugins: [jisonPlugin],
|
plugins: [jisonPlugin],
|
||||||
sourcemap: 'external',
|
sourcemap: 'external',
|
||||||
...override,
|
...override,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const getEntryPoints = (extension) => {
|
|
||||||
return {
|
|
||||||
[`mermaid${extension}`]: 'src/mermaid.ts',
|
|
||||||
[`diagramAPI${extension}`]: 'src/diagram-api/diagramAPI.ts',
|
|
||||||
};
|
|
||||||
};
|
|
||||||
exports.getEntryPoints = getEntryPoints;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build options for mermaid.esm.* build.
|
* Build options for mermaid.esm.* build.
|
||||||
*
|
*
|
||||||
@@ -45,8 +38,7 @@ exports.getEntryPoints = getEntryPoints;
|
|||||||
exports.esmBuild = (override = { minify: true }) => {
|
exports.esmBuild = (override = { minify: true }) => {
|
||||||
return buildOptions({
|
return buildOptions({
|
||||||
format: 'esm',
|
format: 'esm',
|
||||||
entryPoints: getEntryPoints(`.esm${override.minify ? '.min' : ''}`),
|
outfile: `dist/mermaid.esm${override.minify ? '.min' : ''}.mjs`,
|
||||||
outExtension: { '.js': '.mjs' },
|
|
||||||
...override,
|
...override,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -63,8 +55,7 @@ exports.esmBuild = (override = { minify: true }) => {
|
|||||||
exports.esmCoreBuild = (override) => {
|
exports.esmCoreBuild = (override) => {
|
||||||
return buildOptions({
|
return buildOptions({
|
||||||
format: 'esm',
|
format: 'esm',
|
||||||
entryPoints: getEntryPoints(`.core`),
|
outfile: `dist/mermaid.core.mjs`,
|
||||||
outExtension: { '.js': '.mjs' },
|
|
||||||
external: ['require', 'fs', 'path', ...Object.keys(dependencies)],
|
external: ['require', 'fs', 'path', ...Object.keys(dependencies)],
|
||||||
platform: 'neutral',
|
platform: 'neutral',
|
||||||
...override,
|
...override,
|
||||||
@@ -81,7 +72,7 @@ exports.esmCoreBuild = (override) => {
|
|||||||
*/
|
*/
|
||||||
exports.iifeBuild = (override = { minify: true }) => {
|
exports.iifeBuild = (override = { minify: true }) => {
|
||||||
return buildOptions({
|
return buildOptions({
|
||||||
entryPoints: getEntryPoints(override.minify ? '.min' : ''),
|
outfile: `dist/mermaid${override.minify ? '.min' : ''}.js`,
|
||||||
format: 'iife',
|
format: 'iife',
|
||||||
footer: {
|
footer: {
|
||||||
js: 'mermaid = mermaid.default;',
|
js: 'mermaid = mermaid.default;',
|
||||||
|
Reference in New Issue
Block a user