voidzero-dev / voidzero-dev/vite-plus

Installation via mise-en-place

Ouverte
#943 10 commentaires 35 réactions 1 personne assignée Réclamée par @fengmk2 Voir sur GitHub
Langage dominant
Rust
Étoiles
5.8k
Forks
262
Merge moyen
23 h 41 min
PR mergées (30 j)
138

Description

### Description

I am using [mise](https://mise.jdx.dev/) to manage all my toolchain right now. Currently, [viteplus](https://mise.jdx.dev/registry.html#tools) does not show up in registry, nor is there an easy way to install without running an installation script.

### Suggested solution

It would be great if it’s possible to install the `vp` CLI via mise like `mise use -g vite-plus` or `mise use -g vp`.

The [recommended method](https://mise.jdx.dev/dev-tools/backends/aqua.html) would be to put it in the [aqua registry](https://github.com/aquaproj/aqua-registry). Alternatively, mise can also [install binaries from GitHub Releases](https://mise.jdx.dev/dev-tools/backends/http.html), however Vite+ doesn’t publish binaries via GitHub Releases yet (right now binaries seems to be published on npm, however, I would not recommend using [npm backend](https://mise.jdx.dev/dev-tools/backends/npm.html) because it depends on Node.js, which `vp` intends to manage).

### Alternative

### Additional context

I tried using the [http backend](https://mise.jdx.dev/dev-tools/backends/http.html) to install `vp` CLI directly from npm registry without going through npm CLI.

```toml
# ~/.config/mise/config.toml
[tools]
"http:vite-plus" = {
version = "0.1.11",
platforms = {
macos-arm64 = { url = "https://registry.npmjs.org/@voidzero-dev/vite-plus-cli-darwin-arm64/-/vite-plus-cli-darwin-arm64-{{version}}.tgz" },
macos-x64 = { url = "https://registry.npmjs.org/@voidzero-dev/vite-plus-cli-darwin-x64/-/vite-plus-cli-darwin-x64-{{version}}.tgz" },
linux-x64 = { url = "https://registry.npmjs.org/@voidzero-dev/vite-plus-cli-linux-x64-gnu/-/vite-plus-cli-linux-x64-gnu-{{version}}.tgz" },
linux-arm64 = { url = "https://registry.npmjs.org/@voidzero-dev/vite-plus-cli-linux-arm64-gnu/-/vite-plus-cli-linux-arm64-gnu-{{version}}.tgz" },
windows-x64 = { url = "https://registry.npmjs.org/@voidzero-dev/vite-plus-cli-win32-x64-msvc/-/vite-plus-cli-win32-x64-msvc-{{version}}.tgz" },
windows-arm64 = { url = "https://registry.npmjs.org/@voidzero-dev/vite-plus-cli-win32-arm64-msvc/-/vite-plus-cli-win32-arm64-msvc-{{version}}.tgz" }
}
}
```

This is based on [the description on the docs](https://viteplus.dev/guide/):

> Vite+ ships in two parts: `vp`, the global command-line tool, and `vite-plus`, the local package installed in each project.

```sh-session
$ mise install
http:vite-plus@0.1.11 generate checksum vite-plus-cli-darwin-arm64-0.1.11.tgz
✅ Installed successfully. Confirmed vp binary is installed on both Mac and Linux.

$ vp help
VITE+ - The Unified Toolchain for the Web
✅ `vp help` works

$ vp create
node:internal/modules/cjs/loader:1459
throw err;
^

Error: Cannot find module '/Users/dtinth/.local/share/mise/http-tarballs/node_modules/vite-plus/dist/bin.js'
at Module._resolveFilename (node:internal/modules/cjs/loader:1456:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1066:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1071:22)
at Module._load (node:internal/modules/cjs/loader:1242:25)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
at node:internal/main/run_main_module:33:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}

Node.js v24.14.0
❌ `vp create` installs Node v24.14.0 correctly, but then crashes

$ mise uninstall http:vite-plus
🧹 Uninstall the `vp` CLI managed by mise (manually remove the config afterwards after running)
```

It seems like the `vp` CLI also kinda [depends on the `vite-plus` npm package **being installed globally**](https://github.com/voidzero-dev/vite-plus/blob/3782ae1951e7fd7d98827d688905e2c4cb670961/crates/vite_global_cli/src/js_executor.rs#L200-L204) which prevented this setup from working.

### Validations

- [x] Read the [Contributing Guidelines](https://github.com/voidzero-dev/vite-plus/blob/main/CONTRIBUTING.md).
- [x] Confirm this request is for Vite+ itself and not for Vite, Vitest, tsdown, Rolldown, or Oxc.
- [x] Check that there isn't already an issue requesting the same feature.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.