vite Server

This commit is contained in:
Sidharth Vinod
2022-09-21 00:47:04 +05:30
parent 5791fc9a4d
commit 36ad4a847e
5 changed files with 62 additions and 62 deletions

View File

@@ -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
View 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();

View File

@@ -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; }',

View File

@@ -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,

View File

@@ -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
},
],
},
},
});