Files
grafana/packages/grafana-schema/rollup.config.ts
Jack Westbrook 15d9df93f9 Fix: Prevent Rollup from treeshaking NPM packages (#108567)
fix(packages): prevent rollup from treeshaking libraries
2025-07-24 10:54:02 +02:00

52 lines
1.4 KiB
TypeScript

import { glob } from 'glob';
import { createRequire } from 'node:module';
import { fileURLToPath } from 'node:url';
import path from 'path';
import copy from 'rollup-plugin-copy';
import { cjsOutput, entryPoint, esmOutput, plugins } from '../rollup.config.parts';
const rq = createRequire(import.meta.url);
const pkg = rq('./package.json');
const [_, noderesolve, esbuild] = plugins;
export default [
{
input: entryPoint,
plugins,
output: [cjsOutput(pkg), esmOutput(pkg, 'grafana-schema')],
treeshake: false,
},
{
input: Object.fromEntries(
glob
.sync('src/raw/composable/**/*.ts')
.map((file) => [
path.relative('src', file.slice(0, file.length - path.extname(file).length)),
fileURLToPath(new URL(file, import.meta.url)),
])
),
plugins: [
noderesolve,
esbuild,
// Support @grafana/scenes that pulls in types from nested @grafana/schema files.
copy({
targets: [
{
src: 'dist/types/raw/composable/**/*.d.ts',
dest: 'dist/esm/raw/composable',
rename: (_name, _extension, fullpath) => fullpath.split(path.sep).slice(4).join('/'),
},
],
hook: 'writeBundle',
}),
],
output: {
format: 'esm',
dir: path.dirname(pkg.publishConfig.module),
},
treeshake: false,
},
];