idraw/scripts/dev.ts

48 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

2022-12-31 15:21:57 +00:00
/* eslint-disable @typescript-eslint/ban-ts-comment */
import chalk from 'chalk';
import { createServer } from 'vite';
import type { UserConfig } from 'vite';
2022-12-31 15:29:45 +00:00
import { joinPackagePath } from './util/project';
2022-12-31 15:21:57 +00:00
dev();
async function dev() {
2023-02-11 11:12:58 +00:00
const viteConfig = getViteConfig();
2022-12-31 15:21:57 +00:00
const server = await createServer({
configFile: false,
...viteConfig
});
await server.listen();
server.printUrls();
const { port, host = '127.0.0.1' } = server.config?.server || {};
console.log(`Open: ` + chalk.green(`http://${host}:${port}/dev/index.html`));
}
2023-02-11 11:12:58 +00:00
function getViteConfig(): UserConfig {
const pkgName = 'idraw';
2022-12-31 15:21:57 +00:00
const viteConfig: UserConfig = {
2022-12-31 15:29:45 +00:00
root: joinPackagePath(pkgName),
publicDir: joinPackagePath(pkgName, 'demo', 'public'),
2022-12-31 15:21:57 +00:00
server: {
port: 8080,
host: '127.0.0.1'
},
plugins: [],
2023-02-11 11:12:58 +00:00
resolve: {
alias: {
'@idraw/types': joinPackagePath('types', 'src', 'index.ts'),
'@idraw/util': joinPackagePath('util', 'src', 'index.ts'),
'@idraw/renderer': joinPackagePath('renderer', 'src', 'index.ts'),
'@idraw/board': joinPackagePath('board', 'src', 'index.ts'),
'@idraw/core': joinPackagePath('core', 'src', 'index.ts')
}
},
2022-12-31 15:21:57 +00:00
esbuild: {
include: [/\.ts$/, /\.js$/],
exclude: [/\.html$/]
},
optimizeDeps: {}
};
return viteConfig;
}