Skip to content

Commit c9c2d76

Browse files
committed
feat: use CJS module as ESM module in .mjs
1 parent 0276a11 commit c9c2d76

File tree

4 files changed

+98
-0
lines changed

4 files changed

+98
-0
lines changed

src/cjs-module.cjs

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const sum = (a, b) => a + b;
2+
3+
// export = sum;
4+
// 'export =' can only be used in TypeScript files.ts(8003)
5+
6+
// ❌
7+
// exports = sum;
8+
// obj = {}
9+
// sum = undefined
10+
11+
// ✅
12+
// exports.sum = sum;
13+
// console.log(`module inner sum`, sum);
14+
15+
// ✅
16+
// module.exports = sum;
17+
// ✅
18+
module.exports = {sum};

src/esm-module.mjs

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export const Add = (a, b) => a + b;
2+
3+
// ✅
4+
// export default Add;
5+
6+
// ✅
7+
export default {Add};

src/index.cjs

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const log = console.log;
2+
3+
/*
4+
const sum = require('./cjs-module.cjs');
5+
log(`sum =`, sum)
6+
// sum = [Function: sum]
7+
const result = sum(1,2);
8+
*/
9+
10+
/*
11+
const obj = require('./cjs-module.cjs');
12+
log(`obj =`, obj);
13+
// obj = { sum: [Function: sum] }
14+
const sum = obj.sum;
15+
*/
16+
17+
const obj = require('./cjs-module.cjs');
18+
log(`obj =`, obj);
19+
20+
const {sum} = require('./cjs-module.cjs');
21+
log(`sum =`, sum);
22+
// sum = [Function: sum]
23+
24+
const result = sum(1,2);
25+
26+
if(result === 3) {
27+
log(`✅ sum(1,2) =`, result);
28+
} else {
29+
log(`❌ error`, result);
30+
}

src/index.mjs

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
const log = console.log;
2+
3+
// ESM ✅
4+
// import Add from './esm-module.mjs';
5+
// import {Add as add} from './esm-module.mjs';
6+
// log(`Add =`, Add);
7+
// // Add = [Function: Add]
8+
// log(`add =`, add);
9+
// // add = [Function: Add]
10+
11+
import ESM from './esm-module.mjs';
12+
import {Add as add} from './esm-module.mjs';
13+
log(`ESM =`, ESM);
14+
// ESM = { Add: [Function: Add] }
15+
log(`add =`, add);
16+
// add = [Function: Add]
17+
18+
const test1 = ESM.Add(3,4);
19+
const test2 = add(3,4);
20+
21+
if(test1 === 7 && test2 === 7) {
22+
log(`🚀✅ ESM.Add(3,4) && add(3,4) =`, test1, test2);
23+
} else {
24+
log(`🚀❌ error`, test);
25+
}
26+
27+
28+
// use CJS as ESM ✅
29+
import obj from './cjs-module.cjs';
30+
import {sum} from './cjs-module.cjs';
31+
32+
log(`obj =`, obj);
33+
// obj = { sum: [Function: sum] }
34+
log(`sum =`, sum);
35+
// sum = [Function: sum]
36+
37+
const result = sum(1,2);
38+
39+
if(result === 3) {
40+
log(`✅ sum(1,2) =`, result);
41+
} else {
42+
log(`❌ error`, result);
43+
}

0 commit comments

Comments
 (0)