Skip to content

Commit cebafa1

Browse files
zyrongrschristian
andauthored
fix: css compilation problems when multiple entries (#961)
* fix: css compilation problems when multiple entries * change minor to patch * refactor: options.output change to absMain * Apply suggestions from code review Co-authored-by: Ryan Christian <33403762+rschristian@users.noreply.github.com>
1 parent 4ad4b76 commit cebafa1

File tree

8 files changed

+131
-7
lines changed

8 files changed

+131
-7
lines changed

.changeset/angry-worms-smell.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+
Fix for when multiple entries reference different CSS, only the CSS referenced by the first entry will be packaged

src/index.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,7 @@ export default async function microbundle(inputOptions) {
111111
for (let i = 0; i < options.entries.length; i++) {
112112
for (let j = 0; j < formats.length; j++) {
113113
steps.push(
114-
createConfig(
115-
options,
116-
options.entries[i],
117-
formats[j],
118-
i === 0 && j === 0,
119-
),
114+
createConfig(options, options.entries[i], formats[j], j === 0),
120115
);
121116
}
122117
}
@@ -502,7 +497,7 @@ function createConfig(options, entry, format, writeMeta) {
502497
extract:
503498
!!writeMeta &&
504499
options.css !== 'inline' &&
505-
options.output.replace(EXTENSION, '.css'),
500+
absMain.replace(EXTENSION, '.css'),
506501
minimize: options.compress,
507502
sourceMap: options.sourcemap && options.css !== 'inline',
508503
}),

test/__snapshots__/index.test.js.snap

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,99 @@ exports[`fixtures build basic-multi-source with microbundle 8`] = `
701701
"
702702
`;
703703
704+
exports[`fixtures build basic-multi-source-css with microbundle 1`] = `
705+
"Used script: microbundle
706+
707+
Directory tree:
708+
709+
basic-multi-source-css
710+
a.css
711+
a.js
712+
b.css
713+
b.js
714+
dist
715+
a.css
716+
a.css.map
717+
a.esm.mjs
718+
a.esm.mjs.map
719+
a.js
720+
a.js.map
721+
a.umd.js
722+
a.umd.js.map
723+
b.css
724+
b.css.map
725+
b.esm.mjs
726+
b.esm.mjs.map
727+
b.js
728+
b.js.map
729+
b.umd.js
730+
b.umd.js.map
731+
package.json
732+
733+
734+
Build \\"basic-multi-source-css\\" to dist:
735+
104 B: a.js.gz
736+
61 B: a.js.br
737+
105 B: a.esm.mjs.gz
738+
67 B: a.esm.mjs.br
739+
201 B: a.umd.js.gz
740+
133 B: a.umd.js.br
741+
104 B: b.js.gz
742+
61 B: b.js.br
743+
106 B: b.esm.mjs.gz
744+
67 B: b.esm.mjs.br
745+
201 B: b.umd.js.gz
746+
134 B: b.umd.js.br"
747+
`;
748+
749+
exports[`fixtures build basic-multi-source-css with microbundle 2`] = `16`;
750+
751+
exports[`fixtures build basic-multi-source-css with microbundle 3`] = `
752+
".a{display:flex;color:green;background:pink}
753+
/*# sourceMappingURL=a.css.map */"
754+
`;
755+
756+
exports[`fixtures build basic-multi-source-css with microbundle 4`] = `
757+
"function e(){var e=document.createElement(\\"div\\");return e.className=\\"a\\",e}export default e;
758+
//# sourceMappingURL=a.esm.mjs.map
759+
"
760+
`;
761+
762+
exports[`fixtures build basic-multi-source-css with microbundle 5`] = `
763+
"module.exports=function(){var e=document.createElement(\\"div\\");return e.className=\\"a\\",e};
764+
//# sourceMappingURL=a.js.map
765+
"
766+
`;
767+
768+
exports[`fixtures build basic-multi-source-css with microbundle 6`] = `
769+
"!function(e,n){\\"object\\"==typeof exports&&\\"undefined\\"!=typeof module?module.exports=n():\\"function\\"==typeof define&&define.amd?define(n):(e||self).basicMultiSourceCss=n()}(this,function(){return function(){var e=document.createElement(\\"div\\");return e.className=\\"a\\",e}});
770+
//# sourceMappingURL=a.umd.js.map
771+
"
772+
`;
773+
774+
exports[`fixtures build basic-multi-source-css with microbundle 7`] = `
775+
".b{display:flex;color:red;background:#00f}
776+
/*# sourceMappingURL=b.css.map */"
777+
`;
778+
779+
exports[`fixtures build basic-multi-source-css with microbundle 8`] = `
780+
"function e(){var e=document.createElement(\\"div\\");return e.className=\\"b\\",e}export default e;
781+
//# sourceMappingURL=b.esm.mjs.map
782+
"
783+
`;
784+
785+
exports[`fixtures build basic-multi-source-css with microbundle 9`] = `
786+
"module.exports=function(){var e=document.createElement(\\"div\\");return e.className=\\"b\\",e};
787+
//# sourceMappingURL=b.js.map
788+
"
789+
`;
790+
791+
exports[`fixtures build basic-multi-source-css with microbundle 10`] = `
792+
"!function(e,n){\\"object\\"==typeof exports&&\\"undefined\\"!=typeof module?module.exports=n():\\"function\\"==typeof define&&define.amd?define(n):(e||self).basicMultiSourceCss=n()}(this,function(){return function(){var e=document.createElement(\\"div\\");return e.className=\\"b\\",e}});
793+
//# sourceMappingURL=b.umd.js.map
794+
"
795+
`;
796+
704797
exports[`fixtures build basic-no-compress with microbundle 1`] = `
705798
"Used script: microbundle --no-compress
706799
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.a {
2+
display: flex;
3+
color: green;
4+
background: pink;
5+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import './a.css';
2+
3+
export default function () {
4+
const el = document.createElement('div');
5+
el.className = 'a';
6+
return el;
7+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.b {
2+
display: flex;
3+
color: red;
4+
background: blue;
5+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import './b.css';
2+
3+
export default function () {
4+
const el = document.createElement('div');
5+
el.className = 'b';
6+
return el;
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "basic-multi-source-css",
3+
"source":[
4+
"./a.js",
5+
"./b.js"
6+
]
7+
}

0 commit comments

Comments
 (0)