MCPcopy
hub / github.com/rrweb-io/rrweb / writeBundle

Function writeBundle

vite.config.default.ts:28–83  ·  view source on GitHub ↗
(outputOptions, bundle)

Source from the content-addressed store, hash-verified

26 return {
27 name: 'minify-plugin',
28 async writeBundle(outputOptions, bundle) {
29 for (const file of Object.values(bundle)) {
30 if (
31 file.type === 'asset' &&
32 (file.fileName.endsWith('.cjs.map') || file.fileName.endsWith('.css'))
33 ) {
34 const isCSS = file.fileName.endsWith('.css');
35 const inputFilePath = resolve(
36 outputOptions.dir!,
37 file.fileName,
38 ).replace(/\.map$/, '');
39 const baseFileName = file.fileName.replace(
40 /(\.cjs|\.css)(\.map)?$/,
41 '',
42 );
43 const outputFilePath = resolve(outputOptions.dir!, baseFileName);
44 // console.log(outputFilePath, 'minifying', file.fileName);
45 if (isCSS) {
46 await buildFile({
47 input: inputFilePath,
48 output: `${outputFilePath}.min.css`,
49 minify: true,
50 isCss: true,
51 outDir,
52 });
53 } else {
54 const umdDir = resolve(dirname(outputOptions.dir!), 'umd');
55 if (!existsSync(umdDir)) {
56 mkdirSync(umdDir);
57 }
58 const outUmd = `${outputFilePath}.umd.cjs`;
59 await buildFile({
60 name,
61 input: inputFilePath,
62 output: outUmd,
63 minify: false,
64 isCss: false,
65 outDir,
66 });
67 // Workaround because jsDelivr does not use correct MIME types for .umd.cjs.
68 // More info: https://github.com/jsdelivr/jsdelivr/issues/18584 https://github.com/rrweb-io/rrweb/pull/1704
69 copyFileSync(outUmd, resolve(umdDir, `${baseFileName}.js`));
70 const outUmdMin = `${outputFilePath}.umd.min.cjs`;
71 await buildFile({
72 name,
73 input: inputFilePath,
74 output: outUmdMin,
75 minify: true,
76 isCss: false,
77 outDir,
78 });
79 copyFileSync(outUmdMin, resolve(umdDir, `${baseFileName}.min.js`));
80 }
81 }
82 }
83 },
84 };
85}

Callers

nothing calls this directly

Calls 2

buildFileFunction · 0.85
replaceMethod · 0.65

Tested by

no test coverage detected