mirror of
https://github.com/unslothai/unsloth.git
synced 2026-04-28 03:19:57 +00:00
* perf(studio): upgrade to Vite 8 + auto-install bun for 3x faster frontend builds
* fix(studio): make bun-to-npm fallback actually reachable
setup.sh used run_quiet() for the bun install attempt, but run_quiet
calls exit on failure. This killed the script before the npm fallback
could run, making the "falling back to npm" branch dead code.
Replace the run_quiet call with a direct bun invocation that captures
output to a temp file (same pattern, but returns instead of exiting).
Also clean up partial node_modules left by a failed bun install before
falling back to npm, in both setup.sh and build.sh. Without this, npm
inherits a corrupted node_modules tree from the failed bun run.
* fix(studio): restore commonjsOptions for dagre CJS interop
The previous commit removed build.commonjsOptions, assuming Vite 8's
Rolldown handles CJS natively. While optimizeDeps.include covers the
dev server (pre-bundling), it does NOT apply to production builds.
The resolve.alias still points @dagrejs/dagre to its .cjs.js entry,
so without commonjsOptions the production bundle fails to resolve
the CJS default export. This causes "TypeError: e is not a function"
on /chat after build (while dev mode works fine).
Restore the original commonjsOptions block to fix production builds.
* fix(studio): use motion/react instead of legacy framer-motion import
* fix(studio): address PR review findings for Vite 8 + bun upgrade
Fixes:
- Remove bun.lock from repo and add to .gitignore (npm is source of truth)
- Use & bun install *> $null pattern in setup.ps1 for reliable $LASTEXITCODE
- Add Remove-Item node_modules before npm fallback in setup.ps1
- Print bun install failure log in setup.sh before discarding
- Add Refresh-Environment after npm install -g bun in setup.ps1
- Tighten Node version check to ^20.19.0 || >=22.12.0 (Vite 8 requirement)
- Add engines field to package.json
- Use string comparison for _install_ok in build.sh
- Remove explicit framer-motion ^11.18.2 from package.json (motion pulls
framer-motion ^12.38.0 as its own dependency — the old pin caused a
version conflict)
* Fix Colab Node bypass and bun.lock stale-build trigger
Gate the Colab Node shortcut on NODE_OK=true so Colab
environments with a Node version too old for Vite 8 fall
through to the nvm install path instead of silently proceeding.
Exclude bun.lock from the stale-build probe in both setup.sh
and setup.ps1 so it does not force unnecessary frontend rebuilds
on every run.
---------
Co-authored-by: Daniel Han <danielhanchen@gmail.com>
Co-authored-by: Shine1i <wasimysdev@gmail.com>
94 lines
2.8 KiB
JSON
94 lines
2.8 KiB
JSON
{
|
|
"name": "unsloth-theme",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"lint": "eslint .",
|
|
"preview": "vite preview",
|
|
"typecheck": "tsc -b --pretty false",
|
|
"biome:check": "biome check .",
|
|
"biome:fix": "biome check . --write"
|
|
},
|
|
"dependencies": {
|
|
"@assistant-ui/react": "^0.12.19",
|
|
"@assistant-ui/react-markdown": "^0.12.3",
|
|
"@assistant-ui/react-streamdown": "^0.1.2",
|
|
"@base-ui/react": "^1.2.0",
|
|
"@dagrejs/dagre": "^2.0.4",
|
|
"@dagrejs/graphlib": "^3.0.4",
|
|
"@fontsource-variable/figtree": "^5.2.10",
|
|
"@fontsource-variable/inter": "^5.2.8",
|
|
"@fontsource-variable/space-grotesk": "^5.2.10",
|
|
"@hugeicons/core-free-icons": "^3.1.1",
|
|
"@hugeicons/react": "^1.1.5",
|
|
"@huggingface/hub": "^2.9.0",
|
|
"@langchain/core": "^1.1.27",
|
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
"@radix-ui/react-label": "^2.1.8",
|
|
"@radix-ui/react-select": "^2.2.6",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@streamdown/cjk": "1.0.2",
|
|
"@streamdown/code": "1.0.2",
|
|
"@streamdown/math": "1.0.2",
|
|
"@streamdown/mermaid": "1.0.2",
|
|
"@tailwindcss/vite": "^4.2.2",
|
|
"@tanstack/react-router": "^1.159.10",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@toolwind/corner-shape": "^0.0.8-3",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@xyflow/react": "^12.10.0",
|
|
"assistant-stream": "^0.3.2",
|
|
"canvas-confetti": "^1.9.4",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"dexie": "^4.3.0",
|
|
"js-yaml": "^4.1.1",
|
|
"katex": "^0.16.28",
|
|
"lucide-react": "^0.577.0",
|
|
"mammoth": "^1.11.0",
|
|
"motion": "^12.34.0",
|
|
"next": "^16.1.6",
|
|
"next-themes": "^0.4.6",
|
|
"radix-ui": "^1.4.3",
|
|
"react": "^19.2.4",
|
|
"react-day-picker": "^9.13.2",
|
|
"react-dom": "^19.2.4",
|
|
"react-resizable-panels": "^4.6.4",
|
|
"recharts": "3.7.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"shadcn": "^3.8.4",
|
|
"sonner": "^2.0.7",
|
|
"streamdown": "2.3.0",
|
|
"tailwind-merge": "^3.4.0",
|
|
"tailwindcss": "^4.1.18",
|
|
"tw-animate-css": "^1.4.0",
|
|
"tw-shimmer": "^0.4.6",
|
|
"unpdf": "^1.4.0",
|
|
"zustand": "^5.0.11"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^1.9.4",
|
|
"@eslint/js": "^9.39.1",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/node": "^24.10.1",
|
|
"@types/react": "^19.2.5",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^6.0.1",
|
|
"eslint": "^9.39.1",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-react-refresh": "^0.4.26",
|
|
"globals": "^16.5.0",
|
|
"typescript": "~5.9.3",
|
|
"typescript-eslint": "^8.55.0",
|
|
"vite": "^8.0.1"
|
|
}
|
|
}
|