mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
Fixes #19389 We inlined env vars in the Standalone CLI because we use some custom patches + env vars to ensure that only the appropriate `glibc` / `musl` binaries are included for Lightning CSS and Parcel Watcher for Linux builds. The build happens to run on a macOS Github CI machine though so `NODE_PATH` was getting inlined as the string: ``` /Users/runner/work/tailwindcss/tailwindcss/node_modules/.pnpm/bun@1.3.0/node_modules/bun/bin/node_modules ``` I don't think there's a reason for `NODE_PATH` to work on the Standalone CLI (and it didn't work because of the above bug *anyway*) so I've done a few things here: 1. The build setup now uses `Bun.build(…)` which now supports compiling binaries. This speeds up the build process a bit. 2. We're no longer inlining all env vars. We selectively inline only a few using `define`. 3. I've explicitly disabled the extra `NODE_PATH` support in `@tailwindcss/node` when building with the Standalone CLI. 4. The `__tw_readFile` hack is now gone. Async FS APIs were not originally able to read embedded files but that changed in Bun v1.2.3 making the hack unnecessary. 5. A few more env vars are now inlined + a plugin to simplify the Oxide loading code when bundled. 6. A plugin + env vars prevents bundling WASI build as it's not necessary for the Standalone CLI. I want to find a way to get rid of `__tw_resolve` and `__tw_load` but don't want to change too much in this PR so I haven't looked into it yet.