Files
pdfme/packages/jsx/vite.config.mts
Kyohei Fukuda 03f616f0c5 [codex] Add @pdfme/jsx package (#1466)
* feat(jsx): add pdfme jsx package

* refactor(jsx): derive text props from schema types

* fix(jsx): tighten mvp layout constraints

* feat(jsx): measure text height with schema helpers

* docs: update jsx md2pdf roadmap
2026-05-05 17:48:19 +09:00

44 lines
1.3 KiB
TypeScript

import { readFileSync } from 'node:fs';
import { builtinModules } from 'node:module';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { defineConfig } from 'vite';
const __dirname = dirname(fileURLToPath(import.meta.url));
const packageJson = JSON.parse(readFileSync(resolve(__dirname, 'package.json'), 'utf8')) as {
dependencies?: Record<string, string>;
peerDependencies?: Record<string, string>;
};
const builtinModuleSet = new Set([
...builtinModules,
...builtinModules.map((moduleName) => `node:${moduleName}`),
]);
const packageDependencies = [
...Object.keys(packageJson.dependencies ?? {}),
...Object.keys(packageJson.peerDependencies ?? {}),
];
const isExternal = (id: string) =>
builtinModuleSet.has(id) ||
packageDependencies.some((dependency) => id === dependency || id.startsWith(`${dependency}/`));
export default defineConfig({
build: {
lib: {
entry: {
index: resolve(__dirname, 'src/index.ts'),
'jsx-runtime': resolve(__dirname, 'src/jsx-runtime.ts'),
'jsx-dev-runtime': resolve(__dirname, 'src/jsx-dev-runtime.ts'),
},
fileName: (_format, entryName) => `${entryName}.js`,
formats: ['es'],
},
minify: false,
outDir: 'dist',
rollupOptions: { external: isExternal },
sourcemap: true,
target: 'es2020',
},
});