Skip to content

Commit f711b46

Browse files
committed
Convert core to use esbuild
1 parent ea9c5a1 commit f711b46

File tree

3 files changed

+76
-9
lines changed

3 files changed

+76
-9
lines changed

packages/core/build.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/usr/bin/env node
2+
const esbuild = require('esbuild')
3+
const { nodeExternalsPlugin } = require('esbuild-node-externals')
4+
5+
let config = {
6+
bundle: true,
7+
minify: true,
8+
sourcemap: true,
9+
target: 'es2020',
10+
plugins: [nodeExternalsPlugin()],
11+
}
12+
13+
if (process.argv.slice(1).includes('--watch')) {
14+
config.watch = {
15+
onRebuild(error) {
16+
if (error) console.error('watch build failed:', error)
17+
else console.log('watch build succeeded')
18+
},
19+
}
20+
}
21+
22+
esbuild
23+
.build({
24+
...config,
25+
entryPoints: ['src/index.ts'],
26+
format: 'esm',
27+
outfile: 'dist/index.esm.js',
28+
platform: 'browser',
29+
})
30+
.catch(() => process.exit(1))
31+
32+
esbuild
33+
.build({
34+
...config,
35+
entryPoints: ['src/index.ts'],
36+
format: 'cjs',
37+
outfile: 'dist/index.js',
38+
platform: 'browser',
39+
})
40+
.catch(() => process.exit(1))
41+
42+
esbuild
43+
.build({
44+
...config,
45+
entryPoints: ['src/server.ts'],
46+
format: 'esm',
47+
outfile: 'dist/server.esm.js',
48+
platform: 'node',
49+
})
50+
.catch(() => process.exit(1))
51+
52+
esbuild
53+
.build({
54+
...config,
55+
entryPoints: ['src/server.ts'],
56+
format: 'cjs',
57+
outfile: 'dist/server.js',
58+
platform: 'node',
59+
})
60+
.catch(() => process.exit(1))

packages/core/package.json

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,24 @@
2323
],
2424
"source": "src/index.ts",
2525
"main": "dist/index.js",
26-
"unpkg": "dist/index.umd.js",
2726
"types": "types/index.d.ts",
2827
"exports": {
29-
".": "./dist/index.js",
30-
"./server": "./dist/server.js"
28+
".": {
29+
"import": "./dist/index.esm.js",
30+
"require": "./dist/index.js",
31+
"types": "./types/index.d.js"
32+
},
33+
"./server": {
34+
"import": "./dist/server.esm.js",
35+
"require": "./dist/server.js",
36+
"types": "./types/server.d.js"
37+
}
3138
},
3239
"scripts": {
33-
"build": "npm run clean && npm run build:browser && npm run build:server",
34-
"build:browser": "microbundle --format es,cjs",
35-
"build:server": "microbundle --format es,cjs --target node --output ./dist/server.js ./src/server.ts",
40+
"build": "npm run clean && ./build.js && tsc --emitDeclarationOnly",
3641
"clean": "rm -rf types && rm -rf dist",
3742
"prepublishOnly": "npm run build",
38-
"watch": "microbundle watch --format es,cjs"
43+
"watch": "./build.js --watch"
3944
},
4045
"dependencies": {
4146
"axios": "^0.27.0",
@@ -48,7 +53,8 @@
4853
"@types/node": "^14.0",
4954
"@types/nprogress": "^0.2.0",
5055
"@types/qs": "^6.9.0",
51-
"microbundle": "^0.12.0",
52-
"typescript": "^4.2.4"
56+
"esbuild": "^0.16.13",
57+
"esbuild-node-externals": "^1.6.0",
58+
"typescript": "^4.9.4"
5359
}
5460
}

packages/core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ export { default as setupProgress } from './progress'
55
export { default as shouldIntercept } from './shouldIntercept'
66
export * from './types'
77
export { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'
8+
export { type Router }
89

910
export const router = new Router()

0 commit comments

Comments
 (0)