mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-15 14:29:25 +02:00
vite Server
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const { transformJison } = require('./jisonTransformer');
|
||||
const { transformJison } = require('./jisonTransformer.cjs');
|
||||
const fileRegex = /\.(jison)$/;
|
||||
|
||||
export default function jison() {
|
||||
|
32
.vite/server.mjs
Normal file
32
.vite/server.mjs
Normal file
@@ -0,0 +1,32 @@
|
||||
import express from 'express';
|
||||
import { createServer as createViteServer } from 'vite';
|
||||
|
||||
async function createServer() {
|
||||
const app = express();
|
||||
|
||||
// Create Vite server in middleware mode
|
||||
const vite = await createViteServer({
|
||||
configFile: './vite.config.cts',
|
||||
server: { middlewareMode: true },
|
||||
appType: 'custom', // don't include Vite's default HTML handling middlewares
|
||||
});
|
||||
|
||||
app.use(express.static('demos'));
|
||||
app.use(express.static('cypress/platform'));
|
||||
// Use vite's connect instance as middleware
|
||||
app.use(vite.middlewares);
|
||||
|
||||
app.use('*', async (req, res) => {
|
||||
// Since `appType` is `'custom'`, should serve response here.
|
||||
// Note: if `appType` is `'spa'` or `'mpa'`, Vite includes middlewares to handle
|
||||
// HTML requests and 404s so user middlewares should be added
|
||||
// before Vite's middlewares to take effect instead
|
||||
res.end('Hello world!');
|
||||
});
|
||||
|
||||
app.listen(9000, () => {
|
||||
console.log(`Listening on http://localhost:9000`);
|
||||
});
|
||||
}
|
||||
|
||||
createServer();
|
@@ -24,7 +24,7 @@ CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
|
||||
</pre>
|
||||
|
||||
<script type="module">
|
||||
import mermaid from './mermaid.esm.mjs';
|
||||
import mermaid from '../src/mermaid';
|
||||
mermaid.initialize({
|
||||
theme: 'forest',
|
||||
// themeCSS: '.node rect { fill: red; }',
|
||||
|
@@ -1,32 +1,37 @@
|
||||
import { transformJison } from './.esbuild/jisonTransformer.cjs';
|
||||
import jison from './.esbuild/jison';
|
||||
import { resolve } from 'path';
|
||||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
const fileRegex = /\.jison$/;
|
||||
|
||||
/** Transforms jison to js. */
|
||||
export function jisonPlugin() {
|
||||
return {
|
||||
name: 'transform-jison',
|
||||
|
||||
transform(src: string, id: string) {
|
||||
if (fileRegex.test(id)) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Transforming', id);
|
||||
return {
|
||||
// @ts-ignore no typings for jison
|
||||
code: transformJison(src),
|
||||
map: null, // provide source map if available
|
||||
};
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export default defineConfig({
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(__dirname, 'src/mermaid.ts'),
|
||||
name: 'mermaid',
|
||||
// the proper extensions will be added
|
||||
fileName: 'mermaid',
|
||||
},
|
||||
rollupOptions: {
|
||||
// make sure to externalize deps that shouldn't be bundled
|
||||
// into your library
|
||||
external: ['require', 'fs', 'path'],
|
||||
output: [
|
||||
{
|
||||
name: 'mermaid',
|
||||
format: 'esm',
|
||||
sourcemap: true,
|
||||
},
|
||||
{
|
||||
name: 'mermaid',
|
||||
format: 'umd',
|
||||
sourcemap: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.jison', '.js', '.ts', '.json'],
|
||||
},
|
||||
plugins: [jisonPlugin()],
|
||||
plugins: [jison()],
|
||||
test: {
|
||||
environment: 'jsdom',
|
||||
globals: true,
|
||||
|
@@ -1,37 +0,0 @@
|
||||
import { resolve } from 'path';
|
||||
import { defineConfig } from 'vite';
|
||||
import jison from './.esbuild/jison';
|
||||
export default defineConfig({
|
||||
plugins: [jison()],
|
||||
resolve: {
|
||||
extensions: ['.ts', '.js', '.json', '.jison'],
|
||||
},
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(__dirname, 'src/mermaid.ts'),
|
||||
name: 'mermaid',
|
||||
// the proper extensions will be added
|
||||
fileName: 'mermaid',
|
||||
},
|
||||
rollupOptions: {
|
||||
// make sure to externalize deps that shouldn't be bundled
|
||||
// into your library
|
||||
external: ['require', 'fs', 'path'],
|
||||
output: [
|
||||
{
|
||||
name: 'mermaid',
|
||||
format: 'esm',
|
||||
// Provide global variables to use in the UMD build
|
||||
// for externalized deps
|
||||
},
|
||||
{
|
||||
name: 'mermaid',
|
||||
format: 'umd',
|
||||
|
||||
// Provide global variables to use in the UMD build
|
||||
// for externalized deps
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
});
|
Reference in New Issue
Block a user