mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-06-06 08:10:48 +08:00
feat: 拆分 environment-setup 为 Python/Node.js 运行时双核心 + 父级路由
新增双核心 skill(深度集成 DesireCore Hatch/Volta + HTTP API + Socket.IO): - python-runtime v1.0.1:Python 运行时管理 · 四级降级:HTTP API → Hatch CLI 绝对路径 → 系统包管理器 → pyenv · references:hatch-desirecore / pyenv-fallback / virtualenv / troubleshooting · scripts/probe-python.sh:输出 JSON 快照供 Claude 解析决策 - nodejs-runtime v1.0.1:Node.js 运行时管理 · 四级降级:HTTP API → Volta CLI → 系统包管理器/NodeSource → nvm/fnm · references:volta-desirecore / nvm-fallback / package-managers / troubleshooting · scripts/probe-node.sh:输出 JSON 快照(含 volta_tools / package_json_volta 等) environment-setup → dev-environment-setup v2.0.1(重命名 + 重写为 router): - 从 1380 行手册瘦身为 ~150 行索引 - 仅负责容器(Docker/Podman)/ WSL2 / 办公依赖速查 / 系统工具 - references/desirecore-runtime.md 沉淀 Hatch/Volta 路径表 + HTTP API 速查 + Socket.IO 事件契约,作为两个核心 skill 的共享底座 - references/decision-tree.md 定义四级降级决策树 - scripts/probe.sh + probe.ps1 系统级 JSON 探测 三个 SKILL.md 的 L0 改为场景驱动结构(何时使用 / 何时不要用 / 怎么做), 让 AI 凭名字与 L0 即可判断匹配场景。 注册更新: - builtin-skills.json:新增 python-runtime / nodejs-runtime / dev-environment-setup (原 environment-setup 移除),按字母序,共 21 个 skill - manifest.json:totalSkills 19→21,lastUpdated 2026-05-02 下游同步: - docx / pdf / xlsx / pptx 中的环境引用从 environment-setup 拆分为 python-runtime / nodejs-runtime / dev-environment-setup 三向指引 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
140
skills/nodejs-runtime/references/nvm-fallback.md
Normal file
140
skills/nodejs-runtime/references/nvm-fallback.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# nvm / fnm(L4 社区方案)
|
||||
|
||||
仅在以下情况启用:
|
||||
1. 用户明确要求 nvm / fnm
|
||||
2. 项目根目录已有 `.nvmrc` 文件且不存在 `package.json#volta`
|
||||
3. L1 (HTTP API) / L2 (Volta CLI) / L3 (系统包管理器) 全部失败
|
||||
|
||||
如条件不满足,**不要**主动建议 nvm——优先 DesireCore Volta。
|
||||
|
||||
## nvm(POSIX shell)
|
||||
|
||||
### 安装
|
||||
|
||||
```bash
|
||||
# macOS / Linux
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
||||
|
||||
source ~/.zshrc # 或 ~/.bashrc
|
||||
|
||||
# 验证
|
||||
command -v nvm # 应返回 "nvm"(函数)
|
||||
```
|
||||
|
||||
`install.sh` 会自动追加加载片段到 `~/.zshrc` / `~/.bashrc`:
|
||||
```bash
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
||||
```
|
||||
|
||||
### 使用
|
||||
|
||||
```bash
|
||||
# 列出可装 LTS
|
||||
nvm ls-remote --lts
|
||||
|
||||
# 安装
|
||||
nvm install 22 # 最新 22.x
|
||||
nvm install --lts # 最新 LTS
|
||||
nvm install 20.10.0 # 精确版本
|
||||
|
||||
# 切换
|
||||
nvm use 22
|
||||
nvm use --lts
|
||||
|
||||
# 默认
|
||||
nvm alias default 22
|
||||
|
||||
# 项目级(.nvmrc)
|
||||
echo "22" > .nvmrc
|
||||
nvm use # 读取 .nvmrc
|
||||
|
||||
# 已装
|
||||
nvm ls
|
||||
|
||||
# 卸载
|
||||
nvm uninstall 18
|
||||
```
|
||||
|
||||
### Windows(nvm-windows,独立项目)
|
||||
|
||||
```
|
||||
https://github.com/coreybutler/nvm-windows/releases
|
||||
```
|
||||
|
||||
下载安装包安装,重启终端。命令略有差异(无 `.nvmrc` 支持,需用 `nvm-windows-bridge` 之类的扩展)。
|
||||
|
||||
## fnm(Rust 实现,比 nvm 快)
|
||||
|
||||
### 安装
|
||||
|
||||
```bash
|
||||
# macOS
|
||||
brew install fnm
|
||||
|
||||
# Linux
|
||||
curl -fsSL https://fnm.vercel.app/install | bash
|
||||
|
||||
# Windows
|
||||
winget install Schniz.fnm
|
||||
```
|
||||
|
||||
### 配置自动切换
|
||||
|
||||
```bash
|
||||
# zsh
|
||||
echo 'eval "$(fnm env --use-on-cd --shell zsh)"' >> ~/.zshrc
|
||||
|
||||
# bash
|
||||
echo 'eval "$(fnm env --use-on-cd --shell bash)"' >> ~/.bashrc
|
||||
|
||||
# fish
|
||||
fnm env --use-on-cd --shell fish | source
|
||||
```
|
||||
|
||||
`--use-on-cd` 让 `cd` 进入有 `.nvmrc` 的目录时自动切换。
|
||||
|
||||
### 使用
|
||||
|
||||
```bash
|
||||
fnm install 22
|
||||
fnm install --lts
|
||||
fnm use 22
|
||||
fnm default 22
|
||||
fnm ls
|
||||
fnm uninstall 18
|
||||
```
|
||||
|
||||
## .nvmrc / .node-version 约定
|
||||
|
||||
| 文件 | 工具支持 |
|
||||
|------|----------|
|
||||
| `.nvmrc` | nvm、fnm(默认) |
|
||||
| `.node-version` | fnm(默认)、nodenv |
|
||||
| `package.json#engines.node` | npm 安装时校验,不切换 |
|
||||
| `package.json#volta` | Volta(自动切换) |
|
||||
|
||||
存在 `package.json#volta` 时**优先尊重**它,不要让用户改用 nvm。
|
||||
|
||||
## 镜像加速
|
||||
|
||||
```bash
|
||||
# nvm
|
||||
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/
|
||||
|
||||
# fnm
|
||||
fnm install --node-dist-mirror https://npmmirror.com/mirrors/node/ 22
|
||||
# 或全局
|
||||
export FNM_NODE_DIST_MIRROR=https://npmmirror.com/mirrors/node/
|
||||
```
|
||||
|
||||
## 故障排查
|
||||
|
||||
| 现象 | 排查 |
|
||||
|------|------|
|
||||
| `nvm: command not found` | shell 未 source nvm.sh,重启终端或 `source ~/.zshrc` |
|
||||
| `nvm` 在脚本里失效 | nvm 是 shell function 不是命令;脚本里需先 `source ~/.nvm/nvm.sh` |
|
||||
| `node: command not found`(nvm 已装) | 切换了 shell 但 nvm 没在新 shell 加载,添加加载片段 |
|
||||
| nvm 编译 Node 时网络超时 | 设镜像 `NVM_NODEJS_ORG_MIRROR` |
|
||||
| Windows nvm 切换无效 | 以管理员重新运行 nvm 安装包 |
|
||||
Reference in New Issue
Block a user