Skip to content

Commit 206b56d

Browse files
fix: esm files should use .mjs extention (#3159)
1 parent 54bfd1c commit 206b56d

File tree

14 files changed

+119
-28
lines changed

14 files changed

+119
-28
lines changed

.changeset/popular-pillows-draw.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
'@module-federation/webpack-bundler-runtime': patch
3+
'@module-federation/data-prefetch': patch
4+
'@module-federation/runtime-tools': patch
5+
'@module-federation/managers': patch
6+
'@module-federation/manifest': patch
7+
'@module-federation/runtime': patch
8+
'@module-federation/sdk': patch
9+
---
10+
11+
disable hoistTransitiveImports for better tree shake

packages/data-prefetch/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,27 @@
1313
},
1414
"exports": {
1515
".": {
16-
"import": "./dist/index.esm.js",
16+
"import": "./dist/index.esm.mjs",
1717
"require": "./dist/index.cjs",
1818
"types": "./dist/index.cjs.d.ts"
1919
},
2020
"./react": {
21-
"import": "./dist/react.esm.js",
21+
"import": "./dist/react.esm.mjs",
2222
"require": "./dist/react.cjs.js",
2323
"types": "./dist/react.cjs.d.ts"
2424
},
2525
"./cli": {
26-
"import": "./dist/cli.esm.js",
26+
"import": "./dist/cli.esm.mjs",
2727
"require": "./dist/cli.cjs.js",
2828
"types": "./dist/cli.cjs.d.ts"
2929
},
3030
"./babel-plugin": {
31-
"import": "./dist/babel.esm.js",
31+
"import": "./dist/babel.esm.mjs",
3232
"require": "./dist/babel.cjs.js",
3333
"types": "./dist/babel.cjs.d.ts"
3434
},
3535
"./universal": {
36-
"import": "./dist/universal.esm.js",
36+
"import": "./dist/universal.esm.mjs",
3737
"require": "./dist/universal.cjs.js",
3838
"types": "./dist/universal.cjs.d.ts"
3939
}
@@ -58,7 +58,7 @@
5858
}
5959
},
6060
"main": "dist/index.cjs",
61-
"module": "dist/index.esm.js",
61+
"module": "dist/index.esm.mjs",
6262
"peerDependencies": {
6363
"react": ">=16.9.0",
6464
"react-dom": ">=16.9.0"

packages/data-prefetch/rollup.config.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,14 @@ module.exports = (rollupConfig, _projectOptions) => {
2929
}
3030
},
3131
hoistTransitiveImports: false,
32+
entryFileNames:
33+
c.format === 'esm'
34+
? c.entryFileNames.replace('.js', '.mjs')
35+
: c.entryFileNames,
36+
chunkFileNames:
37+
c.format === 'esm'
38+
? c.chunkFileNames.replace('.js', '.mjs')
39+
: c.chunkFileNames,
3240
}));
3341
} else {
3442
rollupConfig.output = {
@@ -39,6 +47,14 @@ module.exports = (rollupConfig, _projectOptions) => {
3947
}
4048
},
4149
hoistTransitiveImports: false,
50+
entryFileNames:
51+
rollupConfig.output.format === 'esm'
52+
? rollupConfig.output.entryFileNames.replace('.js', '.mjs')
53+
: rollupConfig.output.entryFileNames,
54+
chunkFileNames:
55+
rollupConfig.output.format === 'esm'
56+
? rollupConfig.output.chunkFileNames.replace('.js', '.mjs')
57+
: rollupConfig.output.chunkFileNames,
4258
};
4359
}
4460

packages/data-prefetch/src/cli/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class PrefetchPlugin implements WebpackPluginInstance {
4848
this.options.runtimePlugins = [];
4949
}
5050

51-
const runtimePath = path.resolve(__dirname, './plugin.esm.js');
51+
const runtimePath = path.resolve(__dirname, './plugin.esm.mjs');
5252
if (!this.options.runtimePlugins?.includes(runtimePath)) {
5353
this.options.runtimePlugins!.push(runtimePath);
5454
}

packages/enhanced/src/lib/container/runtime/FederationRuntimePlugin.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ class FederationRuntimePlugin {
371371
}
372372

373373
if (isHoisted) {
374-
runtimePath = runtimePath.replace('.cjs', '.esm');
374+
runtimePath = runtimePath.replace('.cjs.js', '.esm.mjs');
375375
}
376376

377377
const alias: any = compiler.options.resolve.alias || {};
@@ -439,7 +439,7 @@ class FederationRuntimePlugin {
439439
if (this.options?.experiments?.federationRuntime === 'hoisted') {
440440
this.bundlerRuntimePath = this.bundlerRuntimePath.replace(
441441
'.cjs.js',
442-
'.esm.js',
442+
'.esm.mjs',
443443
);
444444

445445
new EmbedFederationRuntimePlugin().apply(compiler);
@@ -450,7 +450,7 @@ class FederationRuntimePlugin {
450450
/@module-federation\/runtime/,
451451
(resolveData) => {
452452
if (/webpack-bundler-runtime/.test(resolveData.contextInfo.issuer)) {
453-
resolveData.request = RuntimePath.replace('cjs', 'esm');
453+
resolveData.request = RuntimePath.replace('cjs.js', 'esm.mjs');
454454

455455
if (resolveData.createData) {
456456
resolveData.createData.request = resolveData.request;

packages/rspack/src/ModuleFederationPlugin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export class ModuleFederationPlugin implements RspackPluginInstance {
9999
).apply(compiler);
100100

101101
const runtimeESMPath = require.resolve(
102-
'@module-federation/runtime/dist/index.esm.js',
102+
'@module-federation/runtime/dist/index.esm.mjs',
103103
{ paths: [options.implementation] },
104104
);
105105

packages/runtime-tools/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.6.16",
44
"author": "zhanghang <[email protected]>",
55
"main": "./dist/index.cjs",
6-
"module": "./dist/index.esm.js",
6+
"module": "./dist/index.esm.mjs",
77
"types": "./dist/index.cjs.d.ts",
88
"license": "MIT",
99
"publishConfig": {
@@ -12,17 +12,17 @@
1212
"exports": {
1313
".": {
1414
"types": "./dist/index.cjs.d.ts",
15-
"import": "./dist/index.esm.js",
15+
"import": "./dist/index.esm.mjs",
1616
"require": "./dist/index.cjs.js"
1717
},
1818
"./runtime": {
1919
"types": "./dist/runtime.cjs.d.ts",
20-
"import": "./dist/runtime.esm.js",
20+
"import": "./dist/runtime.esm.mjs",
2121
"require": "./dist/runtime.cjs.js"
2222
},
2323
"./webpack-bundler-runtime": {
2424
"types": "./dist/webpack-bundler-runtime.cjs.d.ts",
25-
"import": "./dist/webpack-bundler-runtime.esm.js",
25+
"import": "./dist/webpack-bundler-runtime.esm.mjs",
2626
"require": "./dist/webpack-bundler-runtime.cjs.js"
2727
},
2828
"./*": "./*"

packages/runtime-tools/rollup.config.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,27 @@ module.exports = (rollupConfig) => {
1111
rollupConfig.output = rollupConfig.output.map((c) => ({
1212
...c,
1313
hoistTransitiveImports: false,
14+
entryFileNames:
15+
c.format === 'esm'
16+
? c.entryFileNames.replace('.js', '.mjs')
17+
: c.entryFileNames,
18+
chunkFileNames:
19+
c.format === 'esm'
20+
? c.chunkFileNames.replace('.js', '.mjs')
21+
: c.chunkFileNames,
1422
}));
1523
} else {
1624
rollupConfig.output = {
1725
...rollupConfig.output,
1826
hoistTransitiveImports: false,
27+
entryFileNames:
28+
rollupConfig.output.format === 'esm'
29+
? rollupConfig.output.entryFileNames.replace('.js', '.mjs')
30+
: rollupConfig.output.entryFileNames,
31+
chunkFileNames:
32+
rollupConfig.output.format === 'esm'
33+
? rollupConfig.output.chunkFileNames.replace('.js', '.mjs')
34+
: rollupConfig.output.chunkFileNames,
1935
};
2036
}
2137

packages/runtime/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.6.16",
44
"author": "zhouxiao <[email protected]>",
55
"main": "./dist/index.cjs.js",
6-
"module": "./dist/index.esm.js",
6+
"module": "./dist/index.esm.mjs",
77
"types": "./dist/index.cjs.d.ts",
88
"license": "MIT",
99
"publishConfig": {
@@ -16,22 +16,22 @@
1616
"exports": {
1717
".": {
1818
"types": "./dist/index.cjs.d.ts",
19-
"import": "./dist/index.esm.js",
19+
"import": "./dist/index.esm.mjs",
2020
"require": "./dist/index.cjs.js"
2121
},
2222
"./helpers": {
2323
"types": "./dist/helpers.cjs.d.ts",
24-
"import": "./dist/helpers.esm.js",
24+
"import": "./dist/helpers.esm.mjs",
2525
"require": "./dist/helpers.cjs.js"
2626
},
2727
"./types": {
2828
"types": "./dist/types.cjs.d.ts",
29-
"import": "./dist/types.esm.js",
29+
"import": "./dist/types.esm.mjs",
3030
"require": "./dist/types.cjs.js"
3131
},
3232
"./embedded": {
3333
"types": "./dist/embedded.cjs.d.ts",
34-
"import": "./dist/embedded.esm.js",
34+
"import": "./dist/embedded.esm.mjs",
3535
"require": "./dist/embedded.cjs.js"
3636
},
3737
"./*": "./*"

packages/runtime/rollup.config.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const copy = require('rollup-plugin-copy');
33

44
const FEDERATION_DEBUG = process.env.FEDERATION_DEBUG || '';
55

6-
module.exports = (rollupConfig) => {
6+
module.exports = (rollupConfig, projectOptions) => {
77
rollupConfig.input = {
88
index: 'packages/runtime/src/index.ts',
99
types: 'packages/runtime/src/types.ts',
@@ -30,6 +30,14 @@ module.exports = (rollupConfig) => {
3030
}
3131
},
3232
hoistTransitiveImports: false,
33+
entryFileNames:
34+
c.format === 'esm'
35+
? c.entryFileNames.replace('.js', '.mjs')
36+
: c.entryFileNames,
37+
chunkFileNames:
38+
c.format === 'esm'
39+
? c.chunkFileNames.replace('.js', '.mjs')
40+
: c.chunkFileNames,
3341
}));
3442
} else {
3543
rollupConfig.output = {
@@ -40,6 +48,14 @@ module.exports = (rollupConfig) => {
4048
}
4149
},
4250
hoistTransitiveImports: false,
51+
entryFileNames:
52+
rollupConfig.output.format === 'esm'
53+
? rollupConfig.output.entryFileNames.replace('.js', '.mjs')
54+
: rollupConfig.output.entryFileNames,
55+
chunkFileNames:
56+
rollupConfig.output.format === 'esm'
57+
? rollupConfig.output.chunkFileNames.replace('.js', '.mjs')
58+
: rollupConfig.output.chunkFileNames,
4359
};
4460
}
4561

0 commit comments

Comments
 (0)