sdkvm 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.en.md +39 -30
  2. package/README.md +39 -30
  3. package/dist/index.js +3651 -173
  4. package/package.json +1 -1
package/README.en.md CHANGED
@@ -69,22 +69,11 @@ Platform limits:
69
69
 
70
70
  ## Install
71
71
 
72
- ### npm, pnpm, yarn, bun
72
+ **Prefer the install script**: no preinstalled Node.js, an isolated runtime for the CLI, data and entrypoint under `SDKVM_HOME` (default `~/.sdkvm`), and upgrades via `sdkvm upgrade`.
73
73
 
74
- The machine needs Node.js >= 18.15. All four commands install from the npm registry:
74
+ ### Install script (recommended)
75
75
 
76
- ```sh
77
- npm install -g sdkvm
78
- pnpm add -g sdkvm
79
- yarn global add sdkvm
80
- bun add -g sdkvm
81
- ```
82
-
83
- The CLI then runs on whatever `node` is first on `PATH`. Switching to a Node older than 18.15 stops the CLI until you switch back.
84
-
85
- ### Install script
86
-
87
- No preinstalled Node.js is required. A GitHub Release that already contains `sdkvm.tgz` and `SHA256SUMS` is required (uploaded by CI after a `v*` tag).
76
+ Requires a [GitHub Release](https://github.com/QInJ1995/sdkvm/releases) that already contains `sdkvm.tgz` and `SHA256SUMS` (uploaded by CI after a `v*` tag).
88
77
 
89
78
  macOS / Linux:
90
79
 
@@ -100,33 +89,51 @@ irm https://raw.githubusercontent.com/QInJ1995/sdkvm/main/install.ps1 | iex
100
89
 
101
90
  The script:
102
91
 
103
- 1. Downloads Node.js 22.20.0 into `~/.sdkvm/runtime`. That copy only launches the CLI. `sdkvm node use` does not change it.
104
- 2. Downloads `sdkvm.tgz` from the GitHub Release, checks SHA-256, and extracts it to `~/.sdkvm/cli`.
105
- 3. Writes `~/.local/bin/sdkvm` (on Windows, `%USERPROFILE%\.local\bin\sdkvm.cmd`). If that directory is not on `PATH`, the script prints the line to add.
92
+ 1. Downloads Node.js 22.20.0 into `$SDKVM_HOME/runtime` (CLI only; `sdkvm node use` does not change it).
93
+ 2. Downloads `sdkvm.tgz` from the GitHub Release, checks SHA-256, and extracts it to `$SDKVM_HOME/cli`.
94
+ 3. Writes `$SDKVM_HOME/bin/sdkvm` (on Windows, `%SDKVM_HOME%\bin\sdkvm.cmd`) and adds that directory to the shell profile / user PATH (zsh → `~/.zshrc`, bash → `~/.bash_profile` or `~/.bashrc`).
95
+
96
+ Then open a new terminal, or `source` the rc file, and check:
97
+
98
+ ```console
99
+ $ sdkvm version
100
+ 1.0.3
101
+ ```
102
+
103
+ To use a custom data root, **pass `SDKVM_HOME` on the install command itself** (`curl | sh` does not read `~/.zshrc`):
106
104
 
107
- The data root matches the CLI: `SDKVM_HOME` overrides it, otherwise `~/.sdkvm`. Both the runtime and the CLI live under that root. Override download prefixes when needed:
105
+ ```sh
106
+ SDKVM_HOME=/Volumes/Develop/sdkvm \
107
+ curl -fsSL https://raw.githubusercontent.com/QInJ1995/sdkvm/main/install.sh | sh
108
+ ```
109
+
110
+ Override download prefixes when needed:
108
111
 
109
112
  ```sh
110
113
  SDKVM_NODE_DIST=https://npmmirror.com/mirrors/node \
111
114
  SDKVM_RELEASE_BASE=https://github.com/QInJ1995/sdkvm/releases \
112
- sh install.sh
115
+ curl -fsSL https://raw.githubusercontent.com/QInJ1995/sdkvm/main/install.sh | sh
113
116
  ```
114
117
 
115
- Check:
118
+ ### npm / pnpm / yarn / bun (alternative)
116
119
 
117
- ```console
118
- $ sdkvm version
119
- 1.0.1
120
+ Use this when Node.js >= 18.15 is already installed and you want the package manager to own global tools. The CLI follows the `node` on `PATH`; a Node older than 18.15 can stop the CLI.
121
+
122
+ ```sh
123
+ npm install -g sdkvm
124
+ pnpm add -g sdkvm
125
+ yarn global add sdkvm
126
+ bun add -g sdkvm
120
127
  ```
121
128
 
122
129
  ## Upgrade
123
130
 
124
131
  | Install method | Command | What changes |
125
132
  |---|---|---|
126
- | npm | `npm update -g sdkvm` | CLI only. pnpm / yarn / bun use their own global update command |
127
- | script | `sdkvm upgrade` | Replaces `~/.sdkvm/cli` only. The runtime and installed SDKs stay |
133
+ | Script (recommended) | `sdkvm upgrade` | Replaces `$SDKVM_HOME/cli` only. The runtime and installed SDKs stay |
134
+ | npm and friends | `npm update -g sdkvm` | CLI only. pnpm / yarn / bun use their own global update command |
128
135
 
129
- `~/.sdkvm` data is independent of a CLI upgrade. A script install can also be refreshed by running the install script again.
136
+ The data directory is independent of a CLI upgrade. A script install can also be refreshed by running the install script again.
130
137
 
131
138
  ## Quick start
132
139
 
@@ -353,6 +360,7 @@ The data root is `~/.sdkvm` (`%USERPROFILE%\.sdkvm` on Windows). `SDKVM_HOME` ov
353
360
  ├── current-node
354
361
  ├── runtime/ # Script-install Node, isolated from current-node
355
362
  ├── cli/ # Script-install CLI package
363
+ ├── bin/ # Script-install entrypoint sdkvm (add to PATH)
356
364
  ├── config.json
357
365
  ├── cache/ # Download staging, removed after a successful install
358
366
  └── tmp/ # Extract staging, also removed
@@ -552,11 +560,10 @@ pnpm, yarn, and bun use their own global uninstall command.
552
560
  A script install removes the shim and the CLI runtime. Installed SDKs stay:
553
561
 
554
562
  ```sh
555
- rm -f ~/.local/bin/sdkvm
556
- rm -rf ~/.sdkvm/cli ~/.sdkvm/runtime
563
+ rm -rf ~/.sdkvm/bin ~/.sdkvm/cli ~/.sdkvm/runtime
557
564
  ```
558
565
 
559
- On Windows, delete `%USERPROFILE%\.local\bin\sdkvm.cmd`, plus `%USERPROFILE%\.sdkvm\cli` and `%USERPROFILE%\.sdkvm\runtime`.
566
+ On Windows, delete `%USERPROFILE%\.sdkvm\bin\sdkvm.cmd`, plus `%USERPROFILE%\.sdkvm\cli` and `%USERPROFILE%\.sdkvm\runtime`, and remove `%USERPROFILE%\.sdkvm\bin` from the user PATH.
560
567
 
561
568
  After you no longer need the installed JDKs, Go, Flutter, and Node.js, remove the data directory:
562
569
 
@@ -564,7 +571,9 @@ After you no longer need the installed JDKs, Go, Flutter, and Node.js, remove th
564
571
  rm -rf ~/.sdkvm
565
572
  ```
566
573
 
567
- Also delete the shell blocks between `>>> sdkvm java init >>>`, `>>> sdkvm go init >>>`, `>>> sdkvm flutter init >>>`, `>>> sdkvm node init >>>` and their matching `<<< … <<<` markers.
574
+ Also delete these shell blocks:
575
+ - `# >>> sdkvm path >>>` … `# <<< sdkvm path <<<`
576
+ - each SDK’s `>>> sdkvm java|go|flutter|node init >>>` … `<<< … <<<`
568
577
 
569
578
  On Windows, remove `JAVA_HOME`, `GO_HOME`, `FLUTTER_HOME`, and `NODE_HOME` from the user environment, and remove `%JAVA_HOME%\bin`, `%GO_HOME%\bin`, `%FLUTTER_HOME%\bin`, and `%NODE_HOME%` from the user PATH.
570
579
 
package/README.md CHANGED
@@ -69,22 +69,11 @@
69
69
 
70
70
  ## 安装
71
71
 
72
- ### npm、pnpm、yarn、bun
72
+ **推荐使用安装脚本**:无需本机预装 Node.js,CLI 自带隔离运行时,数据与入口都在 `SDKVM_HOME`(默认 `~/.sdkvm`)下,升级用 `sdkvm upgrade` 即可。
73
73
 
74
- 本机需要 Node.js >= 18.15。四条命令都从 npm registry 安装:
74
+ ### 安装脚本(推荐)
75
75
 
76
- ```sh
77
- npm install -g sdkvm
78
- pnpm add -g sdkvm
79
- yarn global add sdkvm
80
- bun add -g sdkvm
81
- ```
82
-
83
- 装好后 CLI 使用 `PATH` 上的 `node`。若之后切到 18.15 以前的 Node,CLI 会无法启动,切回较新版本即可。
84
-
85
- ### 安装脚本
86
-
87
- 不要求本机已经安装 Node.js。需要仓库已有带 `sdkvm.tgz` 与 `SHA256SUMS` 的 GitHub Release(打 `v*` tag 后由 CI 上传)。
76
+ 需要仓库已有带 `sdkvm.tgz` 与 `SHA256SUMS` 的 [GitHub Release](https://github.com/QInJ1995/sdkvm/releases)(打 `v*` tag 后由 CI 上传)。
88
77
 
89
78
  macOS / Linux:
90
79
 
@@ -100,33 +89,51 @@ irm https://raw.githubusercontent.com/QInJ1995/sdkvm/main/install.ps1 | iex
100
89
 
101
90
  脚本会:
102
91
 
103
- 1. 下载 Node.js 22.20.0 到 `~/.sdkvm/runtime`。它只启动 CLI,`sdkvm node use` 不会改到它。
104
- 2. 从 GitHub Release 下载 `sdkvm.tgz`,校验 SHA-256 后解压到 `~/.sdkvm/cli`。
105
- 3. 写入 `~/.local/bin/sdkvm`(Windows 为 `%USERPROFILE%\.local\bin\sdkvm.cmd`)。目录不在 `PATH` 中时,脚本会打印需要追加的那一行。
92
+ 1. 下载 Node.js 22.20.0 到 `$SDKVM_HOME/runtime`(仅启动 CLI,`sdkvm node use` 不会改到它)。
93
+ 2. 从 GitHub Release 下载 `sdkvm.tgz`,校验 SHA-256 后解压到 `$SDKVM_HOME/cli`。
94
+ 3. 写入 `$SDKVM_HOME/bin/sdkvm`(Windows 为 `%SDKVM_HOME%\bin\sdkvm.cmd`),并把该目录写入 shell 配置 / 用户 PATH(zsh→`~/.zshrc`,bash→`~/.bash_profile` 或 `~/.bashrc`)。
95
+
96
+ 装完后重开终端,或 `source` 对应 rc,再验证:
97
+
98
+ ```console
99
+ $ sdkvm version
100
+ 1.0.3
101
+ ```
102
+
103
+ 自定义数据根时,**必须在安装命令的环境里带上** `SDKVM_HOME`(`curl | sh` 不会读取 `~/.zshrc`):
106
104
 
107
- 数据根与 CLI 一致:`SDKVM_HOME` 可覆盖,默认 `~/.sdkvm`。runtime 与 CLI 都落在该根下。国内可换下载前缀:
105
+ ```sh
106
+ SDKVM_HOME=/Volumes/Develop/sdkvm \
107
+ curl -fsSL https://raw.githubusercontent.com/QInJ1995/sdkvm/main/install.sh | sh
108
+ ```
109
+
110
+ 国内可换下载前缀:
108
111
 
109
112
  ```sh
110
113
  SDKVM_NODE_DIST=https://npmmirror.com/mirrors/node \
111
114
  SDKVM_RELEASE_BASE=https://github.com/QInJ1995/sdkvm/releases \
112
- sh install.sh
115
+ curl -fsSL https://raw.githubusercontent.com/QInJ1995/sdkvm/main/install.sh | sh
113
116
  ```
114
117
 
115
- 验证:
118
+ ### npm / pnpm / yarn / bun(备选)
116
119
 
117
- ```console
118
- $ sdkvm version
119
- 1.0.1
120
+ 适合本机已有 Node.js >= 18.15、且希望用包管理器统一管理全局工具的场景。CLI 依赖 `PATH` 上的 `node`;若之后切到 18.15 以前的 Node,CLI 可能无法启动。
121
+
122
+ ```sh
123
+ npm install -g sdkvm
124
+ pnpm add -g sdkvm
125
+ yarn global add sdkvm
126
+ bun add -g sdkvm
120
127
  ```
121
128
 
122
129
  ## 升级
123
130
 
124
131
  | 安装方式 | 命令 | 影响范围 |
125
132
  |---|---|---|
126
- | npm | `npm update -g sdkvm` | 只更新 CLI。pnpm / yarn / bun 用各自的全局更新命令 |
127
- | 脚本 | `sdkvm upgrade` | 只替换 `~/.sdkvm/cli`。runtime 与已安装的 SDK 保持不变 |
133
+ | 脚本(推荐) | `sdkvm upgrade` | 只替换 `$SDKVM_HOME/cli`。runtime 与已安装的 SDK 保持不变 |
134
+ | npm 等 | `npm update -g sdkvm` | 只更新 CLI。pnpm / yarn / bun 用各自的全局更新命令 |
128
135
 
129
- 数据目录 `~/.sdkvm` 与 CLI 升级无关。脚本安装也可以重新执行安装脚本。
136
+ 数据目录与 CLI 升级无关。脚本安装也可以重新执行安装脚本。
130
137
 
131
138
  ## 快速开始
132
139
 
@@ -353,6 +360,7 @@ sdkvm nrm test
353
360
  ├── current-node
354
361
  ├── runtime/ # 脚本安装的 CLI 运行时,与 current-node 隔离
355
362
  ├── cli/ # 脚本安装的 CLI 包
363
+ ├── bin/ # 脚本安装的入口 sdkvm(需加入 PATH)
356
364
  ├── config.json
357
365
  ├── cache/ # 下载中转,安装成功后删除
358
366
  └── tmp/ # 解压临时目录,同样会删除
@@ -552,11 +560,10 @@ pnpm、yarn、bun 使用各自的全局卸载命令。
552
560
  脚本安装只删除 shim 和 CLI 运行时,已安装的 SDK 还在:
553
561
 
554
562
  ```sh
555
- rm -f ~/.local/bin/sdkvm
556
- rm -rf ~/.sdkvm/cli ~/.sdkvm/runtime
563
+ rm -rf ~/.sdkvm/bin ~/.sdkvm/cli ~/.sdkvm/runtime
557
564
  ```
558
565
 
559
- Windows 对应删除 `%USERPROFILE%\.local\bin\sdkvm.cmd`,以及 `%USERPROFILE%\.sdkvm\cli` 与 `%USERPROFILE%\.sdkvm\runtime`。
566
+ Windows 对应删除 `%USERPROFILE%\.sdkvm\bin\sdkvm.cmd`,以及 `%USERPROFILE%\.sdkvm\cli` 与 `%USERPROFILE%\.sdkvm\runtime`,并从用户 PATH 移除 `%USERPROFILE%\.sdkvm\bin`。
560
567
 
561
568
  确认不再需要已安装的 JDK、Go、Flutter、Node.js 之后,再删除数据目录:
562
569
 
@@ -564,7 +571,9 @@ Windows 对应删除 `%USERPROFILE%\.local\bin\sdkvm.cmd`,以及 `%USERPROFILE
564
571
  rm -rf ~/.sdkvm
565
572
  ```
566
573
 
567
- 同时删除 shell 配置里 `>>> sdkvm java init >>>`、`>>> sdkvm go init >>>`、`>>> sdkvm flutter init >>>`、`>>> sdkvm node init >>>` 到对应 `<<< … <<<` 之间的块。
574
+ 同时删除 shell 配置里:
575
+ - `# >>> sdkvm path >>>` … `# <<< sdkvm path <<<`
576
+ - 各 SDK 的 `>>> sdkvm java|go|flutter|node init >>>` … `<<< … <<<`
568
577
 
569
578
  Windows 还需要在系统设置中删除 `JAVA_HOME`、`GO_HOME`、`FLUTTER_HOME`、`NODE_HOME`,并从用户 PATH 移除 `%JAVA_HOME%\bin`、`%GO_HOME%\bin`、`%FLUTTER_HOME%\bin`、`%NODE_HOME%`。
570
579