Files
editor/package.json
T
Wawa b27e53415f Hoist platform-specific native packages via root optionalDependencies
Real root cause:
Tailwind v4's lightningcss is invoked from a Turbopack-bundled postcss.js at
runtime. Turbopack resolves require() against the workspace's TOP-LEVEL
node_modules, not against bun's nested .bun/ store. So even when
lightningcss-darwin-arm64 is correctly installed inside .bun/ with proper
symlinks, Turbopack can't see it — and lightningcss falls back to a sibling
'.node' file which doesn't exist, hence the runtime error.

Private-editor accidentally works because it has TWO lightningcss versions
(1.27.0 from Expo + 1.32.0 from Tailwind), which forces bun's hoisting
algorithm to put one copy at the top level. Editor-v2 has only one version,
so bun keeps it nested in .bun/ and nothing is at top-level.

Fix: declare the platform binary packages as optionalDependencies at the
WORKSPACE ROOT (not apps/editor). Root deps are always hoisted to top-level
node_modules, so Turbopack's resolver finds them. Bun still applies the
os/cpu filter at install time, so each developer only ends up with their
host's binaries on disk.

Verified on Linux: node_modules/lightningcss-linux-arm64-gnu is a top-level
symlink after install. On macOS, the darwin variants will be hoisted instead.
2026-05-10 00:14:28 +00:00

55 lines
1.9 KiB
JSON

{
"name": "editor",
"private": true,
"scripts": {
"build": "turbo run build",
"dev": "set -a && . ./.env 2>/dev/null; set +a; turbo run dev --env-mode=loose",
"lint": "biome lint",
"lint:fix": "biome lint --write",
"format": "biome format --write",
"format:check": "biome format",
"check": "biome check",
"check:fix": "biome check --write",
"check-types": "turbo run check-types",
"kill": "lsof -ti:3002 | xargs kill -9 2>/dev/null || echo 'No processes found on port 3002'",
"release": "gh workflow run release.yml -f package=all -f bump=patch",
"release:viewer": "gh workflow run release.yml -f package=viewer -f bump=patch",
"release:core": "gh workflow run release.yml -f package=core -f bump=patch",
"release:editor": "gh workflow run release.yml -f package=editor -f bump=patch",
"release:mcp": "gh workflow run release.yml -f package=mcp -f bump=patch",
"release:minor": "gh workflow run release.yml -f package=all -f bump=minor",
"release:major": "gh workflow run release.yml -f package=all -f bump=major"
},
"devDependencies": {
"@biomejs/biome": "^2.4.6",
"dotenv-cli": "^11.0.0",
"turbo": "^2.8.15",
"typescript": "6.0.2",
"ultracite": "^7.2.5"
},
"engines": {
"node": ">=18"
},
"packageManager": "bun@1.3.0",
"overrides": {
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"@types/three": "0.184.0"
},
"optionalDependencies": {
"@tailwindcss/oxide-darwin-arm64": "4.3.0",
"@tailwindcss/oxide-darwin-x64": "4.3.0",
"@tailwindcss/oxide-linux-arm64-gnu": "4.3.0",
"@tailwindcss/oxide-linux-x64-gnu": "4.3.0",
"lightningcss-darwin-arm64": "1.32.0",
"lightningcss-darwin-x64": "1.32.0",
"lightningcss-linux-arm64-gnu": "1.32.0",
"lightningcss-linux-x64-gnu": "1.32.0"
},
"workspaces": [
"apps/*",
"packages/*",
"tooling/*"
]
}