Vite+ 統合
Vite+ と Vize を1つの vite.config.ts で設定します。
プロジェクトの Vite+(0.2.3 以降)を使い、Vize が Vite+ を入れ替えることはありません。
vp install -D @vizejs/vite-plugin
import { defineConfig } from "@vizejs/vite-plugin/vite-plus";
export default defineConfig({});
既存の Vue プラグインの import と vue() を削除します。
移行ガイドにそのまま使える差分を記載しています。
CLI、エディタ、統合タスクは vite.config.* と tsconfig.json を共有します。
設定
import { defineConfig } from "@vizejs/vite-plugin/vite-plus";
import { defineVizeLintConfig, flatConfigs } from "oxlint-plugin-vize";
const config = defineConfig({
server: { port: 3000 },
lint: {
rules: { "no-debugger": "error" },
ignorePatterns: ["dist/**"],
},
fmt: { ignorePatterns: ["dist/**"] },
}).withVue({
lint: defineVizeLintConfig(
...flatConfigs.recommended,
...flatConfigs.ecosystem,
{
ignorePatterns: ["dist/**"],
rules: { "no-console": "warn" },
},
),
fmt: { singleQuote: true },
entries: [
{
files: ["src/admin/**/*.vue"],
linter: { rules: { "vue/no-v-html": "off" } },
},
],
});
export default config;
ルートのオブジェクトは Vue 固有の項目を含まない通常の Vite+ 設定として保ちます。
.withVue() は Vue の flat lint レイヤーをルート設定へ合成するため、ルートの
no-debugger と flatConfigs.recommended・flatConfigs.ecosystem・Vue 固有の
no-console が同時に有効です。compile・typeCheck・lint・fmt を使います。
lint はホストの Oxlint ブロックで、settings.vize・vize/* ルール・override は
ネイティブ linter にも反映されます。ファイル単位のネイティブ上書きは
entries[].linter に置きます。従来の compiler・typeChecker・linter・formatter は
互換 alias として使えますが、新旧の同じ項目を同時には指定できません。
共有 Vue 設定にパスとスコープの扱いをまとめています。
TypeScript の設定は既存の tsconfig.json を使います。
{
"compilerOptions": { "strict": true, "noEmit": true },
"vueCompilerOptions": { "strictTemplates": true },
"include": ["src/**/*"]
}
既存の設定を組み合わせる
import { defineConfig } from "@vizejs/vite-plugin/vite-plus";
import vpConfig from "./vite.base.ts";
import vueConfig from "./vue.settings.ts";
export default defineConfig(vpConfig).withVue(vueConfig);
通常の JavaScript オブジェクトを import して共有してください。オブジェクト、Promise、関数、
async 関数を渡せます。既存のプラグインやフックを保持し、Vue のプラグインを一度だけ組み込みます。
独自の設定 extends、専用の vize.config.*、トップレベルの vize: は廃止しました。
TypeScript 標準の extends・references は引き続き使えます。
単独の withVue(vueConfig, vpConfig) も使えますが、引数の順序が異なるため defineConfig の別名ではありません。
withVize は従来の config-first helper の互換名です。新しい設定には fluent API を使ってください。
実行するタスク
| コマンド | 実行するもの |
|---|---|
vp dev, vp build |
Vize で Vue をコンパイル |
vp run check |
型チェック、lint、フォーマット検査 |
vp run typecheck |
Vue の型チェック |
vp run lint |
Vize と Oxlint の lint |
vp run lint:fix |
両方の lint 修正 |
vp run fmt |
Vue は Vize、その他は Oxfmt で書き込み |
vp run fmt:check |
書き込まずフォーマットを検査 |
vp run editor:setup |
推奨拡張機能と Vue エディター設定 |
vp run check -- --fix は lint 修正とフォーマットを適用します。
パスは vp run lint -- src のように -- の後ろへ渡せます。
Warning
組み込みの
vp check・vp lint・vp fmtは生成タスクを実行しません。 Vize を含む検査には上のvp runを使います。
既存の package script は保持されます。check がすでにあれば生成名は vize:check、
lint があれば vize:lint です。明示的な run.tasks が優先されます。
生成タスクの名前変更や無効化は、第2引数で設定します。
export default defineConfig({}, { tasks: { check: "verify", preview: false } });
tasks: false ですべての生成タスクを無効化できます。
lint とフォーマットの担当範囲
Vize のネイティブ linter は Oxlint と一緒に動作します。oxlint-plugin-vize の別登録は不要です。
Vue ルールの重複はデフォルトで調整され、明示的な lint.rules や overrides が優先されます。
Vize は Vue ファイル、Oxfmt はその他のファイルをフォーマットします。
fmt.ignorePatterns は両方に適用されます。
vue.linter.enabled: false でネイティブ lint を無効にできます。
lint.vue: false・fmt.vue: false を使う場合は、対応する共有ネイティブ設定がツールを明示的に有効化しないようにします。
vue.compiler を省略して compiler: false を指定すると、既存の Vue コンパイラプラグインを保持します。
ライブラリの型宣言とマップ
export default defineConfig({
pack: {
entry: ["src/index.ts"],
outDir: "dist",
format: ["esm"],
vue: {
dts: true,
declarationMap: true,
sourcemap: true,
},
},
});
Vue ライブラリのバンドルには Vize の Rolldown 連携を使います。pack.vue を指定すると、ネイティブの型宣言生成が
デフォルトで有効になります。無効にする場合は dts: false を指定します。型宣言はバンドルが成功した後に出力され、
型エラーがあると pack コマンドは失敗します。そのエントリーでは tsdown の型宣言処理の代わりにネイティブの生成を
使うため、Vue SFC も扱えます。
出力先は declarationDir で変更でき、指定しない場合は pack.outDir を使います。tsconfig で TypeScript
プロジェクトを選べます。declarationMap は、作成済みの tsconfig を書き換えずにそのプロジェクトのマップ設定を
上書きします。sourcemap はコンパイラーとバンドルのマップを制御します。pack 配列の各エントリーで vue を
個別に設定でき、pack.vue: false のエントリーは Vite+ に任せます。
エディターの設定
vp run editor:setup を実行すると、Vize と Vite Plus の拡張機能の推奨設定と、Vue 向けのエディター設定を追加します。
コメント、既存の推奨設定、明示的な設定、他の言語に選んだフォーマッターは保持されます。
推奨する役割分担と、エディターとネイティブ設定を共有する方法はエディター設定を参照してください。 既存のプロジェクトから置き換える手順は移行、設定場所の選び方は設定にまとめています。