Skip to content

Commit a7bec3a

Browse files
Merge pull request #1 from liuyanghejerry/fix/early-node-versions
chore: fix usage on early Node.js versions, update CI.yml
2 parents d51c620 + 840de68 commit a7bec3a

File tree

3 files changed

+67
-44
lines changed

3 files changed

+67
-44
lines changed

.github/workflows/CI.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ jobs:
238238
curl https://sh.rustup.rs -sSf --output rustup.sh
239239
sh rustup.sh -y --profile minimal --default-toolchain beta
240240
corepack prepare
241-
corepack enable
241+
sudo corepack enable
242242
source "$HOME/.cargo/env"
243243
echo "~~~~ rustc --version ~~~~"
244244
rustc --version

package.json

100755100644
Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,24 @@
2222
],
2323
"exports": {
2424
".": {
25-
"types": "./dist/index.d.ts",
26-
"import": "./dist/index.js",
27-
"default": "./dist/index.js"
25+
"import": {
26+
"types": "./dist/index.d.ts",
27+
"import": "./dist/index.js",
28+
"default": "./dist/index.js"
29+
},
30+
"require": {
31+
"types": "./dist/index.d.ts",
32+
"import": "./dist/index.cjs",
33+
"default": "./dist/index.cjs"
34+
}
2835
},
2936
"./bundled": {
3037
"types": "./dist/bundled.d.ts",
3138
"import": "./dist/bundled.js",
3239
"default": "./dist/bundled.js"
3340
}
3441
},
35-
"main": "./dist/index.js",
42+
"main": "./dist/index.cjs",
3643
"module": "./dist/index.js",
3744
"types": "./dist/index.d.ts",
3845
"files": [

tsdown.config.ts

Lines changed: 55 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,52 @@ import { dependencies } from './package.json'
55
import { IndexExternalResolvePlugin } from './scripts/index-external-plugin'
66
import { createDtsResolvePlugin } from './scripts/resolve-plugin'
77

8+
function createBasePlugins() {
9+
return [
10+
IndexExternalResolvePlugin(path.resolve('index'), '../index.js'),
11+
]
12+
}
13+
14+
function createDtsPlugins() {
15+
return dts()
16+
.filter(plugin => plugin.name !== 'rolldown-plugin-dts:resolver')
17+
.concat(
18+
createDtsResolvePlugin({
19+
tsconfig: path.resolve('tsconfig.json'),
20+
resolve: false,
21+
}),
22+
)
23+
}
24+
25+
const esmOutputOptions = {
26+
advancedChunks: {
27+
groups: [
28+
// handle .d.ts files
29+
{ test: /module-build-profile.*\.d\.[cm]?ts$/, name: 'module-build-profile.d' },
30+
{ test: /project-build-profile.*\.d\.[cm]?ts$/, name: 'project-build-profile.d' },
31+
],
32+
},
33+
}
34+
835
export default defineConfig([
936
{
1037
entry: './src/node/index.ts',
1138
external: [/\.node$/, path.resolve('index.js')],
1239
dts: false,
1340
format: 'esm',
14-
plugins: [
15-
IndexExternalResolvePlugin(path.resolve('index'), '../index.js'),
16-
dts()
17-
.filter(plugin => plugin.name !== 'rolldown-plugin-dts:resolver')
18-
.concat(
19-
createDtsResolvePlugin({
20-
tsconfig: path.resolve('tsconfig.json'),
21-
resolve: false,
22-
}),
23-
),
24-
],
25-
outputOptions: {
26-
advancedChunks: {
27-
groups: [
28-
// handle .d.ts files
29-
{ test: /module-build-profile.*\.d\.[cm]?ts$/, name: 'module-build-profile.d' },
30-
{ test: /project-build-profile.*\.d\.[cm]?ts$/, name: 'project-build-profile.d' },
31-
],
32-
},
33-
},
41+
outExtensions: () => ({ js: '.js' }),
42+
platform: 'node',
43+
shims: true,
44+
plugins: [...createBasePlugins(), ...createDtsPlugins()],
45+
outputOptions: esmOutputOptions,
46+
},
47+
{
48+
entry: './src/node/index.ts',
49+
external: [/\.node$/, path.resolve('index.js')],
50+
dts: false,
51+
format: 'cjs',
52+
outExtensions: () => ({ js: '.cjs' }),
53+
plugins: createBasePlugins(),
3454
},
3555
{
3656
entry: {
@@ -40,25 +60,21 @@ export default defineConfig([
4060
noExternal: Object.keys(dependencies),
4161
dts: false,
4262
format: 'esm',
43-
plugins: [
44-
IndexExternalResolvePlugin(path.resolve('index'), '../index.js'),
45-
dts()
46-
.filter(plugin => plugin.name !== 'rolldown-plugin-dts:resolver')
47-
.concat(
48-
createDtsResolvePlugin({
49-
tsconfig: path.resolve('tsconfig.json'),
50-
resolve: false,
51-
}),
52-
),
53-
],
54-
outputOptions: {
55-
advancedChunks: {
56-
groups: [
57-
// handle .d.ts files
58-
{ test: /module-build-profile.*\.d\.[cm]?ts$/, name: 'module-build-profile.d' },
59-
{ test: /project-build-profile.*\.d\.[cm]?ts$/, name: 'project-build-profile.d' },
60-
],
61-
},
63+
outExtensions: () => ({ js: '.js' }),
64+
platform: 'node',
65+
shims: true,
66+
plugins: [...createBasePlugins(), ...createDtsPlugins()],
67+
outputOptions: esmOutputOptions,
68+
},
69+
{
70+
entry: {
71+
bundled: './src/node/index.ts',
6272
},
73+
external: [/\.node$/, path.resolve('index.js')],
74+
noExternal: Object.keys(dependencies),
75+
dts: false,
76+
format: 'cjs',
77+
outExtensions: () => ({ js: '.cjs' }),
78+
plugins: createBasePlugins(),
6379
},
6480
])

0 commit comments

Comments
 (0)