Skip to content

Commit 6adf5f1

Browse files
committed
chore(build): move tsdx to esbuild
1 parent 61ec24c commit 6adf5f1

File tree

3 files changed

+52
-1
lines changed

3 files changed

+52
-1
lines changed

package-lock.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
"scripts": {
4747
"build-ci": "tsdx build --format cjs,esm,system,umd --name redux-toolkit && api-extractor run",
4848
"build": "tsdx build --format cjs,esm,system,umd --name redux-toolkit && api-extractor run --local",
49+
"bundle": "node scripts/build.js && tsc && api-extractor run --local",
4950
"dev": "tsdx watch --format cjs,esm,system,umd",
5051
"format": "prettier --write \"src/**/*.ts\" \"**/*.md\"",
5152
"format:check": "prettier --list-different \"src/**/*.ts\" \"docs/*/**.md\"",
@@ -61,6 +62,7 @@
6162
"src"
6263
],
6364
"dependencies": {
65+
"esbuild": "0.10.2",
6466
"immer": "^8.0.1",
6567
"redux": "^4.0.0",
6668
"redux-thunk": "^2.3.0",
@@ -78,4 +80,4 @@
7880
}
7981
}
8082
}
81-
}
83+
}

scripts/build.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
const { build } = require('esbuild')
2+
3+
async function bundle(env, format) {
4+
console.log('env:', env)
5+
build({
6+
entryPoints: ['src/index.ts'],
7+
outfile: `dist/redux-toolkit.${format}.${
8+
env === 'production' ? 'production.' : ''
9+
}js`,
10+
target: 'es2015',
11+
minify: env === 'production',
12+
sourcemap: true,
13+
bundle: true,
14+
define: {
15+
'process.env.NODE_ENV': JSON.stringify(env),
16+
},
17+
plugins: [
18+
{
19+
name: 'node_module_external',
20+
setup(build) {
21+
build.onResolve({ filter: /.*/ }, (args) => {
22+
if (args.path.startsWith('.') || args.path.startsWith('/')) {
23+
return undefined
24+
} else {
25+
return {
26+
path: args.path,
27+
external: true,
28+
}
29+
}
30+
})
31+
},
32+
},
33+
],
34+
})
35+
}
36+
async function main() {
37+
for (const format of ['cjs', 'esm']) {
38+
for (const env of ['development', 'production']) {
39+
bundle(env, format)
40+
}
41+
}
42+
}
43+
44+
main()

0 commit comments

Comments
 (0)