Skip to content

Commit 057fb99

Browse files
committed
chore(build): migrate from webpack to esbuild
Replace webpack and related dependencies with esbuild for faster and simpler builds. Add `esbuild.mjs` build script and update dependencies in `package-lock.json`. Remove unused webpack, ts-loader, and related packages. Update engine and dependency versions as needed for esbuild compatibility.
1 parent 891138c commit 057fb99

5 files changed

Lines changed: 814 additions & 2014 deletions

File tree

esbuild.mjs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import fs from 'fs';
2+
import * as esbuild from 'esbuild';
3+
4+
const loadJSON = (path) => JSON.parse(fs.readFileSync(new URL(path, import.meta.url)));
5+
const data = loadJSON('package.json');
6+
7+
const options = {
8+
entryPoints: ['src/index.ts'],
9+
bundle: true,
10+
minify: process.env.NODE_ENV !== 'development',
11+
sourcemap: process.env.NODE_ENV === 'development',
12+
mainFields: ['module', 'main'],
13+
external: ['coc.nvim'],
14+
platform: 'node',
15+
target: 'node18',
16+
outfile: data.main,
17+
// https://esbuild.github.io/api/#log-level
18+
logLevel: process.env.NODE_ENV === 'development' ? 'info' : 'error',
19+
};
20+
21+
if (process.argv.length > 2 && process.argv[2] === '--watch') {
22+
const ctx = await esbuild.context(options);
23+
await ctx.watch();
24+
console.log('watching...');
25+
} else {
26+
const result = await esbuild.build(options);
27+
if (result.errors.length) {
28+
console.error(result.errors);
29+
}
30+
}

0 commit comments

Comments
 (0)