Skip to content

Commit b986ed8

Browse files
committed
build: esnext esbuild
1 parent 2e0d66e commit b986ed8

9 files changed

+5339
-2466
lines changed

.vscode/settings.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"editor.formatOnSave": false,
33
"editor.codeActionsOnSave": {
4-
"source.fixAll.eslint": true
4+
"source.fixAll.eslint": "explicit"
55
},
66
"typescript.tsdk": "node_modules/typescript/lib",
77
"files.exclude": {
@@ -13,7 +13,6 @@
1313
"**/lib": true,
1414
"**/node_modules": true,
1515
"**/coverage": true,
16-
"**/dist": true,
1716
"**/tsconfig.tsbuildinfo": true,
1817
"**/yarn-error.log": true
1918
}

build.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// https://janessagarrow.com/blog/typescript-and-esbuild/
2+
3+
const { build } = require("esbuild");
4+
const { dependencies, peerDependencies } = require('./package.json');
5+
const { Generator } = require('npm-dts');
6+
7+
new Generator({
8+
entry: 'index.ts',
9+
output: 'dist/index.d.ts',
10+
}).generate();
11+
12+
const sharedConfig = {
13+
entryPoints: ["src/index.ts"],
14+
bundle: true,
15+
external: Object.keys(dependencies ?? {}).concat(Object.keys(peerDependencies ?? {})),
16+
};
17+
18+
build({
19+
...sharedConfig,
20+
platform: 'node', // for CJS
21+
outfile: "dist/index.cjs",
22+
});
23+
24+
build({
25+
...sharedConfig,
26+
outfile: "dist/index.js",
27+
platform: 'neutral', // for ESM
28+
format: "esm",
29+
});

0 commit comments

Comments
 (0)