update extension build from vite to esbuild
This commit is contained in:
+63
@@ -0,0 +1,63 @@
|
||||
const esbuild = require("esbuild")
|
||||
|
||||
const production = process.argv.includes("--production")
|
||||
const watch = process.argv.includes("--watch")
|
||||
|
||||
async function main() {
|
||||
const ctx = await esbuild.context({
|
||||
entryPoints: [
|
||||
"client/src/extension.ts"
|
||||
],
|
||||
bundle: true,
|
||||
format: "cjs",
|
||||
minify: production,
|
||||
sourcemap: !production,
|
||||
sourcesContent: false,
|
||||
platform: "node",
|
||||
outfile: "client/dist/extension.js",
|
||||
external: [
|
||||
"vscode"
|
||||
],
|
||||
logLevel: "silent",
|
||||
plugins: [
|
||||
/* add to the end of plugins array */
|
||||
esbuildProblemMatcherPlugin
|
||||
]
|
||||
})
|
||||
if (watch) {
|
||||
await ctx.watch()
|
||||
} else {
|
||||
await ctx.rebuild()
|
||||
await ctx.dispose()
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @type {import('esbuild').Plugin}
|
||||
*/
|
||||
const esbuildProblemMatcherPlugin = {
|
||||
name: "esbuild-problem-matcher",
|
||||
|
||||
setup(build) {
|
||||
build.onStart(() => {
|
||||
console.log("[watch] build started")
|
||||
})
|
||||
build.onEnd((result) => {
|
||||
result.errors.forEach(({ text, location
|
||||
}) => {
|
||||
console.error(`✘ [ERROR
|
||||
] ${text
|
||||
}`)
|
||||
console.error(` ${location.file
|
||||
}:${location.line
|
||||
}:${location.column
|
||||
}:`)
|
||||
})
|
||||
console.log("[watch] build finished")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
})
|
||||
Reference in New Issue
Block a user