Repository navigation
Expand file tree
/
Copy pathpackage.json
More file actions
77 lines (77 loc) · 3.67 KB
/
Copy pathpackage.json
File metadata and controls
77 lines (77 loc) · 3.67 KB
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
{
"name": "chat-code",
"license": "MIT",
"_comment:private": "开源但不发 npm(这是个 app 不是库),private 留着防手滑 npm publish",
"private": true,
"_comment:version": "三处版本号保持一致:这里 / src-tauri/tauri.conf.json / src-tauri/Cargo.toml。tauri.conf.json 是真源(打进 app 的那份),src/version.ts 的 APP_VERSION 直接 import 它、不用手改",
"version": "1.0.2",
"type": "module",
"scripts": {
"dev": "concurrently -n sidecar,web \"npm run sidecar:dev\" \"vite\"",
"sidecar": "node sidecar/server.mjs",
"_comment:sidecar:dev": "开发用独立数据目录 —— 与打包版并存时,两个 sidecar 都全量覆写 index.json,共用目录会互相抹掉会话",
"sidecar:dev": "CHAT_CODE_DATA_DIR=\"$HOME/.ChatCode-dev\" node sidecar/server.mjs",
"build": "tsc && vite build",
"check:i18n": "node scripts/i18n-check.mjs",
"build:sidecar": "esbuild sidecar/server.mjs --bundle --platform=node --format=esm --banner:js=\"import{createRequire as __cr}from'module';const require=__cr(import.meta.url);\" --outfile=src-tauri/resources/sidecar.mjs",
"_comment:fetch:node": "内置 Node 运行时:用户机器没装 node 时 sidecar 起不来,官方 tarball 抓一份塞进 resources。默认双架构,NODE_ARCHS=arm64 只抓一个(包能小一半)",
"fetch:node": "sh scripts/fetch-node.sh",
"_comment:build:dmg": "tauri 自带的 dmg 打包会用 AppleScript 驱动 Finder 美化窗口,无 GUI 授权时超时失败(-1712);这里走 hdiutil,不碰 Finder",
"build:dmg": "mkdir -p release && hdiutil create -volname ChatCode -srcfolder src-tauri/target/release/bundle/macos/ChatCode.app -ov -format UDZO release/chat-code.dmg",
"_comment:release:dmg": "对外分发用:Developer ID 签名 + 公证 + 装订,默认按架构出 arm64 与 intel 两个 dmg(ARCHS=universal 可回到二合一单包)。build:dmg 只是本机自用的裸盘,别人下载会被 Gatekeeper 拦",
"release:dmg": "sh scripts/release-dmg.sh",
"tauri": "tauri"
},
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.3.258",
"@codemirror/lang-css": "^6.3.1",
"@codemirror/lang-html": "^6.4.11",
"@codemirror/lang-javascript": "^6.2.5",
"@codemirror/lang-json": "^6.0.2",
"@codemirror/lang-markdown": "^6.5.1",
"@codemirror/lang-python": "^6.2.1",
"@codemirror/theme-one-dark": "^6.1.3",
"@fontsource-variable/inter": "^5.2.8",
"@radix-ui/react-dialog": "^1.1.19",
"@radix-ui/react-dropdown-menu": "^2.1.20",
"@radix-ui/react-select": "^2.3.3",
"@radix-ui/react-slot": "^1.3.0",
"@radix-ui/react-switch": "^1.3.3",
"@radix-ui/react-tooltip": "^1.2.12",
"@tauri-apps/api": "^2.11.1",
"@tauri-apps/plugin-http": "^2.2.0",
"@uiw/react-codemirror": "^4.25.11",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"diff2html": "^3.4.56",
"framer-motion": "^12.42.2",
"i18next": "^26.3.6",
"lucide-react": "^1.24.0",
"prismjs": "^1.30.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-i18next": "^17.0.11",
"react-markdown": "^10.1.0",
"react-simple-code-editor": "^0.14.1",
"rehype-raw": "^7.0.0",
"rehype-sanitize": "^6.0.0",
"remark-gfm": "^4.0.1",
"tailwind-merge": "^3.6.0",
"tailwindcss-animate": "^1.0.7",
"ws": "^8.18.0"
},
"devDependencies": {
"@tauri-apps/cli": "^2.0.0",
"@types/prismjs": "^1.26.6",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.0",
"autoprefixer": "^10.5.2",
"concurrently": "^9.0.0",
"esbuild": "^0.25.0",
"postcss": "^8.5.19",
"tailwindcss": "^3.4.19",
"typescript": "^5.6.0",
"vite": "^5.4.0"
}
}