mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-18 15:56:43 +02:00
vite Server
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||||
const { transformJison } = require('./jisonTransformer');
|
const { transformJison } = require('./jisonTransformer.cjs');
|
||||||
const fileRegex = /\.(jison)$/;
|
const fileRegex = /\.(jison)$/;
|
||||||
|
|
||||||
export default function 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>
|
</pre>
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import mermaid from './mermaid.esm.mjs';
|
import mermaid from '../src/mermaid';
|
||||||
mermaid.initialize({
|
mermaid.initialize({
|
||||||
theme: 'forest',
|
theme: 'forest',
|
||||||
// themeCSS: '.node rect { fill: red; }',
|
// 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';
|
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({
|
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: {
|
resolve: {
|
||||||
extensions: ['.jison', '.js', '.ts', '.json'],
|
extensions: ['.jison', '.js', '.ts', '.json'],
|
||||||
},
|
},
|
||||||
plugins: [jisonPlugin()],
|
plugins: [jison()],
|
||||||
test: {
|
test: {
|
||||||
environment: 'jsdom',
|
environment: 'jsdom',
|
||||||
globals: true,
|
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