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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
diff --git a/packages/tailwindcss-language-service/scripts/build.mjs b/packages/tailwindcss-language-service/scripts/build.mjs
index c13061462220e4d7f4f844e436d168f63ab22912..74c9f3af9823307d1fa88ef1cc126e3b9874777b 100644
--- a/packages/tailwindcss-language-service/scripts/build.mjs
+++ b/packages/tailwindcss-language-service/scripts/build.mjs
@@ -1,6 +1,8 @@
-import esbuild from 'esbuild'
import path from 'node:path'
+import { spawnSync } from 'node:child_process'
+import esbuild from 'esbuild'
import minimist from 'minimist'
+import { nodeExternalsPlugin } from 'esbuild-node-externals'
const __dirname = new URL('.', import.meta.url).pathname
@@ -9,37 +11,43 @@ boolean: ['watch', 'minify'],
})
console.log('- Preparing')
-let builds = await Promise.all([
- esbuild.context({
- entryPoints: [path.resolve(__dirname, '../src/index.ts')],
- bundle: true,
- platform: 'node',
- external: [],
- outdir: 'dist',
- minify: args.minify,
+let build = await esbuild.context({
+ entryPoints: [path.resolve(__dirname, '../src/index.ts')],
+ bundle: true,
+ platform: 'node',
+ external: [],
+ outdir: 'dist',
+ minify: args.minify,
- format: 'cjs',
- }),
-
- esbuild.context({
- entryPoints: [path.resolve(__dirname, '../src/index.ts')],
- bundle: true,
- platform: 'node',
- external: [],
- outdir: 'dist',
- minify: args.minify,
+ format: 'esm',
- format: 'esm',
- }),
-])
+ plugins: [
+ nodeExternalsPlugin(),
+ {
+ name: 'generate-types',
+ async setup(build) {
+ build.onEnd(async (result) => {
+ // Call the tsc command to generate the types
+ spawnSync(
+ 'tsc',
+ ['--emitDeclarationOnly', '--outDir', path.resolve(__dirname, '../dist')],
+ {
+ stdio: 'inherit',
+ }
+ )
+ })
+ },
+ },
+ ],
+})
console.log('- Building')
-await Promise.all(builds.map((build) => build.rebuild()))
+await build.rebuild()
if (args.watch) {
console.log('- Watching')
- await Promise.all(builds.map((build) => build.watch()))
+ await build.watch()
} else {
console.log('- Cleaning up')
- await Promise.all(builds.map((build) => build.dispose()))
+ await build.dispose()
}
|