vize
v0.185.0
Published
Vize - High-performance Vue.js toolchain in Rust
Maintainers
Readme
Vize
The vize npm package provides:
- shared config utilities (
defineConfig,loadConfig) - the native
vize buildcommand - the native
vize fmtcommand - the native
vize lintcommand - the native
vize checkcommand for package scripts vize readyforfmt --write -> lint -> check -> buildvize upgradefor updating the npm package
For Vite integration, pair it with @vizejs/vite-plugin.
For the full Rust-native CLI (lsp, ide, project-backed check, and check-server), use the
GitHub release binaries or the Nix entry point. The Rust CLI is not published through crates.io for
v1 alpha.
Need vp first? Install Vite+ once from the Vite+ install guide.
Installation
vp install -D vizeThe package declares the @typescript/native-preview Corsa runtime as an optional dependency, so
standard installs include the runtime needed by vize check. The --corsa-path CLI option remains
available for custom native TypeScript builds.
CLI
The npm CLI exposes the common package-script commands:
vp exec vize build src
vp exec vize fmt --write src
vp exec vize lint --preset happy-path src
vp exec vize check src
vp exec vize ready src
vp exec vize upgradeRecommended scripts:
{
"scripts": {
"vue:build": "vize build src",
"vue:fmt": "vize fmt --write src",
"vue:lint": "vize lint --preset happy-path src",
"vue:check": "vize check src",
"vue:ready": "vize ready src"
}
}Shared config discovery is supported for the npm CLI:
vize.config.pklvize.config.tsvize.config.jsvize.config.mjsvize.config.json
Pkl config files require either @pkl-community/pkl installed in the project or a pkl binary on
PATH. The Pkl runtime is optional so packages that only consume Vize through framework plugins do
not install it by default.
import { defineConfig } from "vize";
export default defineConfig({
compiler: {
sourceMap: true,
vapor: false,
customRenderer: false,
templateSyntax: "standard",
},
vite: {
scanPatterns: ["src/**/*.vue"],
},
linter: {
preset: "opinionated",
},
typeChecker: {
enabled: true,
strict: true,
},
});Override config discovery with --config, or disable it with --no-config.
Static Analysis
vize lint runs Vue-aware Patina diagnostics through the native binding:
vp exec vize lint --preset essential --max-warnings 0 src
vp exec vize lint --preset ecosystem src
vp exec vize lint --preset opinionated --help-level short src
vp exec vize lint --format json src
vp exec vize lint --format plain src
vp exec vize lint --format agent srcLint output supports text, ansi, plain, json, stylish, markdown, html, and agent.
The human and agent-friendly formats include local rule documentation paths such as
docs/content/rules/vue.md.
vize check in the npm package uses the packaged NAPI checker and the @typescript/native-preview
Corsa runtime, so it can run from package.json scripts after installing vize:
vp exec vize check src --strict
vp exec vize check src --show-virtual-ts
vp exec vize check src --declaration --declaration-dir dist/typesUse the Rust CLI when you need Corsa project diagnostics across Vue, TS, TSX, and .d.ts inputs.
vize ready runs fmt --write, lint, check, and build in that order.
Compiler and Tool Options
Important shared fields:
| Field | Used by | Purpose |
| ------------------------- | ---------------------- | --------------------------------------------------------- |
| compiler.sourceMap | Vite plugin | Enable source maps |
| compiler.ssr | npm build, Vite plugin | Force SSR compilation |
| compiler.vapor | npm build, Vite plugin | Enable Vapor compilation |
| compiler.customRenderer | npm build, Vite plugin | Support custom renderer element semantics |
| compiler.templateSyntax | npm build, Vite plugin | Choose standard, strict, or quirks template syntax mode |
| compiler.compatibility | integrations | Opt into legacy Vue, Nuxt, CDN, Vapor, or Webpack bridges |
| compiler.scriptExt | npm build | Preserve TypeScript output or downcompile to JavaScript |
| vite.scanPatterns | Vite plugin | Pre-compile matching Vue files |
| linter.preset | npm lint | Select the Patina lint preset |
| typeChecker.strict | npm check | Enable strict checks |
| formatter.printWidth | npm fmt | Set formatting width |
Template syntax
compiler.templateSyntax defaults to "standard".
"standard"warns and rewrites invalid non-void HTML self-closing tags such as<div />."strict"reports invalid syntax as compilation errors."quirks"preserves compatibility quirks without extra warnings.
<template>
<!-- Standard/strict reject this. Quirk mode compiles it as `item in items`. -->
<div v-for="(item in items">{{ item }}</div>
<!-- Standard/strict reject this. Quirk mode compiles it as `item in items`. -->
<div v-for="item) in items">{{ item }}</div>
<!-- Standard warns and rewrites this as `<div></div>`. Strict errors. Quirk keeps it as a leaf. -->
<div />
</template>Vue upstream reference:
Programmatic Config Helpers
import { defineConfig, loadConfig } from "vize";
export default defineConfig({
linter: {
preset: "happy-path",
},
});
const config = await loadConfig(process.cwd());Related Packages
@vizejs/vite-plugin@vizejs/native@vizejs/wasm@vizejs/nuxt@vizejs/vite-plugin-musea
License
MIT
