/
build-node.js
43 lines (43 loc) · 1.65 KB
/
build-node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
require('esbuild').build({
entryPoints: process.argv.includes('--empty') ? {
client: './scripts/empty.js',
server: './scripts/empty.js',
} : {
client: './out/nodeClientMain.js',
server: './node_modules/@volar/vue-language-server/out/node.js',
},
bundle: true,
outdir: './dist/node',
external: ['vscode'],
format: 'cjs',
platform: 'node',
tsconfig: '../../tsconfig.build.json',
define: { 'process.env.NODE_ENV': '"production"' },
minify: process.argv.includes('--minify'),
watch: process.argv.includes('--watch'),
plugins: [
{
name: 'umd2esm',
setup(build) {
build.onResolve({ filter: /^(vscode-.*|estree-walker|jsonc-parser)/ }, args => {
const pathUmdMay = require.resolve(args.path, { paths: [args.resolveDir] })
const pathEsm = pathUmdMay.replace('/umd/', '/esm/')
return { path: pathEsm }
})
build.onResolve({ filter: /^\@vue\/compiler-sfc$/ }, args => {
const pathUmdMay = require.resolve(args.path, { paths: [args.resolveDir] })
const pathEsm = pathUmdMay.replace('compiler-sfc.cjs.js', 'compiler-sfc.esm-browser.js')
return { path: pathEsm }
})
},
},
require('esbuild-plugin-copy').copy({
resolveFrom: 'cwd',
assets: {
from: ['./node_modules/@volar/preview/bin/**/*'],
to: ['./dist/preview-bin'],
},
keepStructure: true,
}),
],
}).catch(() => process.exit(1))