Commencer
⚠️ Travaux en cours : Vize est en développement actif et n’est pas encore prêt pour une utilisation en production. Les API et les limites des paquets peuvent changer sans préavis.
Qu’est-ce que Vize ?
Vize (/viːz/) est une chaîne d’outils Vue.js écrite en Rust. L’espace de travail contient des blocs de construction partagés pour :
| Superficie | Caisse principale de rouille | Point d’entrée orienté utilisateur |
|---|---|---|
| Compilation | vize_atelier_core, vize_atelier_dom, vize_atelier_vapor, vize_atelier_ssr, vize_atelier_sfc |
@vizejs/vite-plugin, npm vize:build script |
| Peluches | vize_patina |
NPM vize:lint script, oxlint-plugin-vize |
| Format | vize_glyph |
Script vize:fmt NPM |
| Contrôle de type | vize_canon |
NPM vize:check script |
| Support des éditeurs | vize_maestro |
VS Code, Zed, Rust vize lsp |
| Outils d’art de la musea | vize_musea |
@vizejs/vite-plugin-musea |
| Reliures | vize_vitrine |
@vizejs/native, @vizejs/wasm |
Ce guide recommande Vite+ (vp) pour la gestion de paquets JavaScript et les commandes de projet. Cela maintient la cohérence du flux d’installation et d’exécutif entre les gestionnaires de paquets tout en utilisant l’outil sous-jacent de l’espace de travail.
Si vous n’avez pas encore vp , installez-le une fois et ouvrez un nouveau shell :
curl -fsSL https://vite.plus | bash
Consultez les Vite+ docs et les Installing Dependencies guide pour en savoir plus.
Ce que fait Vize
À un niveau général, Vize est divisé en quelques voies réutilisables :
| Voie | Paquet ou script | Ce que tu obtiens |
|---|---|---|
| Compiler | @vizejs/vite-plugin, vize:build |
Compilation SFC Vue native Rust, sortie SSR, mode Vapor, gestion CSS à portée portée |
| Analyse statique | vize:lint, oxlint-plugin-vize |
Modèle Vue, script, CSS, a11y, SSR, Vapor, Musea, diagnostics cross-file et sensibles aux types |
| Contrôle de type | vize:check |
Génération de Virtual TypeScript, diagnostic de projet, mappage de diagnostic Vue vers la source |
| Format | vize:fmt |
Mise en page SFC Vue avec options de projet et de CLI |
| Galerie de composants | @vizejs/vite-plugin-musea, musea-vrt |
Fichiers artistiques, variantes composantes, configuration de prévisualisation, jetons de design, a11y, VRT |
| Support des éditeurs | VS Code, Zed, Rust vize lsp |
Diagnostics et fonctionnalités d’éditeur en option |
Voir Static Analysis pour le modèle de vérification de lint et de type, Rules pour la sortie de règles concrètes, et Configuration pour les options partagées de configuration et de compilateur.
Créer des composants dans JSX/TSX au lieu de .vue SFC ? Consultez le guide JSX & TSX —
.jsx/.tsx composants Vue se compilent dans la même voie Rust.
Choisissez votre point d’entrée
1. Projets Vite
Utilisez le plugin Vite si vous voulez une compilation native de Vue dans un projet Vite existant.
vp install -D @vizejs/vite-plugin
Installez vize comme dépendance directe uniquement lorsque vous souhaitez importer des assistants de configuration partagés depuis
"vize" ou ajouter des scripts de paquets Vize comme vize:lint et vize:check.
// vite.config.ts
import { defineConfig } from "vite";
import vize from "@vizejs/vite-plugin";
export default defineConfig({
plugins: [vize()],
});
Ajoutez des options de compilateur dans vize.config.ts lorsque vous souhaitez avoir les mêmes réglages pour intégrer
scripts et le plugin :
import { defineConfig } from "vize";
export default defineConfig({
compiler: {
sourceMap: true,
vapor: false,
customRenderer: false,
},
vite: {
scanPatterns: ["src/**/*.vue"],
},
});
2. Projets Nuxt
Utilisez le module Nuxt lorsque vous voulez que Vize tourne dans le pipeline Vite de Nuxt.
vp install @vizejs/nuxt
Ajoutez le module à nuxt.config.ts:
export default defineNuxtConfig({
modules: ["@vizejs/nuxt"],
vize: {
compiler: true,
},
});
Faites tourner votre serveur de développement Nuxt comme d’habitude. Les registres du module @vizejs/vite-plugin pour la compilation de
SFC Vue tout en préservant les importations automatiques Nuxt, les composants, les middlewares et les transformations SSR.
Consultez le guide Nuxt Integration pour l’installation de Musea et les notes spécifiques à Nuxt.
3. scripts de paquet npm + configuration partagée
Utilisez le package vize npm lorsque vous voulez des utilitaires de configuration partagés et des commandes natives disponibles via
scripts de projet.
vp install -D vize
Scripts de paquets recommandés :
{
"scripts": {
"vize:build": "vize build src",
"vize:fmt": "vize fmt --write src",
"vize:lint": "vize lint --preset happy-path src",
"vize:check": "vize check src",
"vize:ready": "vize ready src"
}
}
vp run vize:fmt
vp run vize:lint
vp run vize:check
vp run vize:build
vp run vize:ready
La commande vize check du package npm utilise le vérificateur NAPI empaqueté et peut émettre des déclarations de composantes Vue
avec --declaration --declaration-dir dist/types. Utilisez la ligne de commande Rust lorsque vous avez besoin de
check-server, LSP, gestion de l’IDE ou de diagnostics de projet via Vue, TS, TSX et .d.ts entrées.
4. CLI complet de rouille
La plupart des flux de travail applicatifs devraient utiliser les scripts de paquet npm ci-dessus. Utilisez le binaire Rust lorsque vous
besoin de la CLI native complète aujourd’hui : LSP, gestion de l’IDE, profilage ou check-server. Pour l’alpha v1, les canaux publics
pris en charge sont les binaires de publication GitHub et le point d’entrée Nix ; le CLI Rust n’est pas encore
publié via crates.io.
nix run github:ubugeeei-prod/vize#vize -- --help
vize build src/**/*.vue
vize fmt --check src
vize lint --profile src
vize check --profile src
vize ready src
vize lsp
Vérification de type native
vize check est alimenté par vize_canon, qui s’appuie désormais sur corsa-bind sessions de projet pour des diagnostics natifs TypeScript. Vize génère un TypeScript virtuel pour les SFC Vue, demande à Corsa des diagnostics conscients du projet, puis remappe les résultats sur les fichiers originaux .vue, .ts, .tsxet .d.ts.
Cette voie est encore en train de mûrir, donc la vérification des types d’éditeurs reste une option volontaire pour l’instant. La pile d’exécution
est le paquet @typescript/native-preview, Corsa/corsa-bind est la couche API avec laquelle Vize
communique, et l’exécutable installé par l’aperçu natif TypeScript est encore couramment nommé
tsgo. Utilisez typeChecker.corsaPath, ou un script package qui s’exécute
vize check --corsa-path /path/to/tsgo, lorsque vous souhaitez épingler ce runtime.
typeChecker.tsgoPath reste un alias de compatibilité obsolète.
Cibles utiles pour scripts de paquets :
{
"scripts": {
"vize:check": "vize check",
"vize:check:app": "vize check --tsconfig tsconfig.app.json",
"vize:check:virtual-ts": "vize check --show-virtual-ts src/components/App.vue",
"vize:check:declarations": "vize check --declaration --declaration-dir dist/types"
}
}
vp run vize:check
vp run vize:check:app
vp run vize:check:virtual-ts
vp run vize:check:declarations
Partagé vize.config.*
Les commandes de paquet npm et @vizejs/vite-plugin partagent la découverte de configuration :
vize.config.pklvize.config.tsvize.config.jsvize.config.mjsvize.config.json
Configuration TypeScript :
import { defineConfig } from "vize";
export default defineConfig({
compiler: {
sourceMap: true,
vapor: false,
customRenderer: false,
},
linter: {
preset: "opinionated",
},
typeChecker: {
enabled: true,
strict: true,
corsaPath: "./node_modules/.bin/tsgo",
},
formatter: {
printWidth: 100,
},
musea: {
include: ["src/**/*.art.vue"],
basePath: "/__musea__",
},
lsp: {
lint: true,
typecheck: false,
editor: false,
formatting: false,
},
});
Configuration PKL :
amends "node_modules/vize/pkl/vize.pkl"
linter {
preset = "opinionated"
}
typeChecker {
enabled = true
strict = true
}
lsp {
lint = true
typecheck = false
editor = false
formatting = false
}
Configuration JSON avec schéma :
{
"$schema": "./node_modules/vize/schemas/vize.config.schema.json",
"linter": {
"preset": "opinionated"
}
}
Paquets
vp install -D @vizejs/vite-plugin
vp install @vizejs/native
vp install @vizejs/wasm
vp install @vizejs/unplugin
vp install @vizejs/rspack-plugin @rspack/core
vp install @vizejs/nuxt
vp install @vizejs/vite-plugin-musea
vp install @vizejs/musea-mcp-server
vp install -D oxlint oxlint-plugin-vize
Notes :
@vizejs/vite-plugin'est l’intégration recommandée du bundler aujourd’hui.@vizejs/unpluginet@vizejs/rspack-pluginsont encore expérimentaux.@vizejs/nativeet@vizejs/wasmexposent directement les fixations Rust.@vizejs/vite-plugin-museafournit la galerie et le flux de travail dev-server pour Musea.
Galerie des composantes de la Musea
Utilisez Musea lorsque vous souhaitez des exemples de composants natifs Vue, de la documentation, des jetons, des vérifications VRT et a11y :
vp install -D @vizejs/vite-plugin @vizejs/vite-plugin-musea vize
// vite.config.ts
import { defineConfig } from "vite";
import vize from "@vizejs/vite-plugin";
import { musea } from "@vizejs/vite-plugin-musea";
export default defineConfig({
plugins: [
vize(),
musea({
include: ["src/**/*.art.vue"],
basePath: "/__musea__",
previewCss: ["src/styles/main.css"],
}),
],
});
Faites tourner votre serveur de développement Vite et ouvrez /__musea__. Voir Musea pour les fichiers d’art, la configuration
aperçu, les jetons de design, la VRT et les variantes générées.
Intégration Oxlint
Exécutez les diagnostics Vue de Vize à l’intérieur d’Oxlint :
vp install -D oxlint oxlint-plugin-vize
{
"plugins": ["vue"],
"jsPlugins": ["oxlint-plugin-vize"],
"rules": {
"eqeqeq": "error",
"vize/vue/require-v-for-key": "error",
"vize/vue/no-v-html": "warn"
},
"settings": {
"vize": {
"preset": "general-recommended",
"helpLevel": "short"
}
}
}
Pour une utilisation terminale d’abord, préférez :
vp exec oxlint-vize -c .oxlintrc.json -f stylish src
Support des éditeurs
Pour le montage quotidien de Vue, continuez à utiliser vuejs/language-tools pour l’instant.
fonctionnalités de l’éditeur Vize sont conçues pour l’adhésion incrémentale.
Point de départ de VS Code :
{
"vize.enable": true,
"vize.lint.enable": true,
"vize.typecheck.enable": false,
"vize.editor.enable": false,
"vize.formatting.enable": false
}
Point de départ de Zed :
{
"languages": {
"Vue": {
"language_servers": ["vize", "..."]
}
},
"lsp": {
"vize": {
"initialization_options": {
"lint": true
}
}
}
}
Développement local
Les tâches locales restent locales ; CI parity utilise nix develop .#testbox.
nix develop
vp install --frozen-lockfile
vp check
vp fmt
vp dev
vp build