Skip to content

Commit 392d63e

Browse files
authored
fix: Corrects CSS output being overwritten when .cjs ext used (#919)
1 parent f04c85a commit 392d63e

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

.changeset/light-trainers-obey.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'microbundle': patch
3+
---
4+
5+
Fixes CSS output from being overwritten when also generating .cjs

src/index.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,14 @@ import typescript from 'rollup-plugin-typescript2';
2020
import json from '@rollup/plugin-json';
2121
import OMT from '@surma/rollup-plugin-off-main-thread';
2222
import logError from './log-error';
23-
import { isDir, isFile, stdout, isTruthy, removeScope } from './utils';
23+
import {
24+
EXTENSION,
25+
isDir,
26+
isFile,
27+
isTruthy,
28+
stdout,
29+
removeScope,
30+
} from './utils';
2431
import { getSizeInfo } from './lib/compressed-size';
2532
import { normalizeMinifyOptions } from './lib/terser';
2633
import {
@@ -279,17 +286,12 @@ function getMain({ options, entry, format }) {
279286

280287
let mainNoExtension = options.output;
281288
if (options.multipleEntries) {
282-
let name = entry.match(
283-
/([\\/])index(\.(umd|cjs|es|m))?\.(mjs|cjs|[tj]sx?)$/,
284-
)
289+
let name = entry.match(new RegExp(/([\\/])index/.source + EXTENSION.source))
285290
? mainNoExtension
286291
: entry;
287292
mainNoExtension = resolve(dirname(mainNoExtension), basename(name));
288293
}
289-
mainNoExtension = mainNoExtension.replace(
290-
/(\.(umd|cjs|es|m))?\.(mjs|cjs|[tj]sx?)$/,
291-
'',
292-
);
294+
mainNoExtension = mainNoExtension.replace(EXTENSION, '');
293295

294296
const mainsByFormat = {};
295297

@@ -482,10 +484,7 @@ function createConfig(options, entry, format, writeMeta) {
482484
extract:
483485
!!writeMeta &&
484486
options.css !== 'inline' &&
485-
options.output.replace(
486-
/(\.(umd|cjs|es|m))?\.(mjs|[tj]sx?)$/,
487-
'.css',
488-
),
487+
options.output.replace(EXTENSION, '.css'),
489488
minimize: options.compress,
490489
sourceMap: options.sourcemap && options.css !== 'inline',
491490
}),

src/utils.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,5 @@ export function safeVariableName(name) {
4343
const identifier = normalized.replace(INVALID_ES3_IDENT, '');
4444
return camelCase(identifier);
4545
}
46+
47+
export const EXTENSION = /(\.(umd|cjs|es|m))?\.([cm]?[tj]sx?)$/;

0 commit comments

Comments
 (0)