Skip to content

Commit 4b069ee

Browse files
fix(vite): empty commonjs files with only __esModule (#3540)
When modules only contain the `__esModule` flag, we still need to add the `exports` and `module.exports` initializers.
1 parent 6c03a9b commit 4b069ee

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

packages/plugin-vite/src/plugins/patches/commonjs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export function cjsPlugin(
134134
);
135135
}
136136

137-
if (exported.size > 0 || exportedNs.size > 0) {
137+
if (exported.size > 0 || exportedNs.size > 0 || hasEsModule) {
138138
path.unshiftContainer(
139139
"body",
140140
t.expressionStatement(

packages/plugin-vite/src/plugins/patches/commonjs_test.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ ${EXPORT_ES_MODULE}`,
134134
Deno.test("commonjs - esModule flag only", () => {
135135
runTest({
136136
input: `Object.defineProperty(exports, "__esModule", { value: true });`,
137-
expected: `Object.defineProperty(exports, "__esModule", {
137+
expected: `${INIT}
138+
Object.defineProperty(exports, "__esModule", {
138139
value: true
139140
});
140141
const _default = exports.default ?? exports;
@@ -148,7 +149,8 @@ Deno.test("commonjs - esModule flag only #2", () => {
148149
runTest({
149150
input:
150151
`Object.defineProperty(module.exports, "__esModule", { value: true });`,
151-
expected: `Object.defineProperty(module.exports, "__esModule", {
152+
expected: `${INIT}
153+
Object.defineProperty(module.exports, "__esModule", {
152154
value: true
153155
});
154156
const _default = exports.default ?? exports;
@@ -161,7 +163,8 @@ ${EXPORT_ES_MODULE}`,
161163
Deno.test("commonjs - esModule flag only minified #3", () => {
162164
runTest({
163165
input: `Object.defineProperty(exports, '__esModule', { value: !0 });`,
164-
expected: `Object.defineProperty(exports, '__esModule', {
166+
expected: `${INIT}
167+
Object.defineProperty(exports, '__esModule', {
165168
value: !0
166169
});
167170
const _default = exports.default ?? exports;
@@ -692,7 +695,8 @@ Deno.test("commonjs - minified __esModule", () => {
692695
const m = module.exports;
693696
const a = Object.defineProperty;
694697
a(m, "__esModule", { value: !0 });`,
695-
expected: `const m = module.exports;
698+
expected: `${INIT}
699+
const m = module.exports;
696700
const a = Object.defineProperty;
697701
a(m, "__esModule", {
698702
value: !0

0 commit comments

Comments
 (0)