feat: add pnpm run link:dev for local development #151

Merged
xiaomo merged 1 commits from feat/link-dev-script into main 2026-04-27 05:40:48 +00:00
Owner

What

Add a one-command development setup script (pnpm run link:dev) that switches ~/.uncaged-nerve to use monorepo workspace packages instead of npm registry versions.

Why

During local development, the globally installed nerve CLI and the daemon's node_modules can get out of sync with the monorepo workspace packages, causing version mismatches and confusing bugs (e.g. missing fields like lastSignalTimestamp, unrecognized triggers configs).

Changes

  • scripts/link-dev.sh (new): Shell script that builds all packages, links the CLI globally via pnpm link --global, symlinks all @uncaged/* packages into ~/.uncaged-nerve/node_modules/, and restarts the daemon.
  • package.json: Added link:dev script entry pointing to scripts/link-dev.sh.

Ref

N/A

## What Add a one-command development setup script (`pnpm run link:dev`) that switches `~/.uncaged-nerve` to use monorepo workspace packages instead of npm registry versions. ## Why During local development, the globally installed nerve CLI and the daemon's `node_modules` can get out of sync with the monorepo workspace packages, causing version mismatches and confusing bugs (e.g. missing fields like `lastSignalTimestamp`, unrecognized `triggers` configs). ## Changes - **`scripts/link-dev.sh`** (new): Shell script that builds all packages, links the CLI globally via `pnpm link --global`, symlinks all `@uncaged/*` packages into `~/.uncaged-nerve/node_modules/`, and restarts the daemon. - **`package.json`**: Added `link:dev` script entry pointing to `scripts/link-dev.sh`. ## Ref N/A
xingyue added 1 commit 2026-04-27 05:34:04 +00:00
- scripts/link-dev.sh: one-command setup to switch ~/.uncaged-nerve
  to use monorepo packages instead of npm registry versions
- Builds all packages, links CLI globally, links all @uncaged/*
  packages into the nerve workspace, and restarts daemon
- Prevents version mismatch between CLI and daemon during development
xiaomo requested changes 2026-04-27 05:37:25 +00:00
Dismissed
xiaomo left a comment
Owner

脚本本身 LGTM 👍 逻辑清晰完整。

package.json 的改动需要讨论:

  1. dependencies 不应引用子包 — monorepo root 加 @uncaged/nerve-cli / @uncaged/nerve-daemon 作为 dependency 不合常规,会被 pnpm install 安装到 root node_modules
  2. pnpm.overrides 是全局生效的 — 影响所有人的 pnpm install,不只是 dev 场景。如果只是本地开发需要,不应该提交到仓库

建议:去掉 package.json 的改动,脚本本身的 pnpm link 已经够用了。如果需要 overrides,可以用 .pnpmfile.cjs 或文档说明。

脚本本身 LGTM 👍 逻辑清晰完整。 但 `package.json` 的改动需要讨论: 1. **根 `dependencies` 不应引用子包** — monorepo root 加 `@uncaged/nerve-cli` / `@uncaged/nerve-daemon` 作为 dependency 不合常规,会被 `pnpm install` 安装到 root `node_modules` 2. **`pnpm.overrides` 是全局生效的** — 影响所有人的 `pnpm install`,不只是 dev 场景。如果只是本地开发需要,不应该提交到仓库 建议:去掉 `package.json` 的改动,脚本本身的 `pnpm link` 已经够用了。如果需要 overrides,可以用 `.pnpmfile.cjs` 或文档说明。
package.json Outdated
@@ -18,0 +21,4 @@
"@uncaged/nerve-cli": "link:packages/cli",
"@uncaged/nerve-daemon": "link:packages/daemon"
}
},

根目录不应该把子包加到 dependenciespnpm.overrides 也会影响所有 pnpm install。建议去掉这段,脚本里的 pnpm link 已经处理了 linking。

根目录不应该把子包加到 `dependencies`,`pnpm.overrides` 也会影响所有 `pnpm install`。建议去掉这段,脚本里的 `pnpm link` 已经处理了 linking。
xingyue force-pushed feat/link-dev-script from f5f785cb26 to a834083a0b 2026-04-27 05:39:11 +00:00 Compare
xiaomo approved these changes 2026-04-27 05:40:43 +00:00
xiaomo left a comment
Owner

package.json 改动已清理,只剩 link:dev script 入口,LGTM。

✅ package.json 改动已清理,只剩 `link:dev` script 入口,LGTM。
xiaomo merged commit cdeb5ebd61 into main 2026-04-27 05:40:48 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#151