vite-plus 0.1.16 → 0.1.17-alpha.1

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.
package/bin/oxfmt CHANGED
@@ -11,9 +11,11 @@ if (!process.argv.includes('--lsp')) {
11
11
  }
12
12
 
13
13
  import { createRequire } from 'node:module';
14
+ import { dirname, join } from 'node:path';
14
15
  import { pathToFileURL } from 'node:url';
15
16
 
16
17
  const require = createRequire(import.meta.url);
17
- const oxfmtBin = require.resolve('oxfmt/bin/oxfmt');
18
+ const oxfmtMainPath = require.resolve('oxfmt');
19
+ const oxfmtBin = join(dirname(dirname(oxfmtMainPath)), 'bin', 'oxfmt');
18
20
 
19
21
  await import(pathToFileURL(oxfmtBin).href);
@@ -870,6 +870,7 @@ const symbol = (state) => {
870
870
  case "cancel": return import_picocolors.default.red(S_STEP_CANCEL);
871
871
  case "error": return import_picocolors.default.yellow(S_STEP_ERROR);
872
872
  case "submit": return completeColor(S_STEP_SUBMIT);
873
+ default: return import_picocolors.default.blue(S_STEP_ACTIVE);
873
874
  }
874
875
  };
875
876
  const symbolBar = (state) => {
@@ -879,6 +880,7 @@ const symbolBar = (state) => {
879
880
  case "cancel": return import_picocolors.default.red(S_BAR);
880
881
  case "error": return import_picocolors.default.yellow(S_BAR);
881
882
  case "submit": return completeColor(S_BAR);
883
+ default: return import_picocolors.default.blue(S_BAR);
882
884
  }
883
885
  };
884
886
  const isAmbiguous = (x) => {
@@ -3800,6 +3802,7 @@ function rewriteStandaloneProject(projectPath, workspaceInfo, skipStagedMigratio
3800
3802
  return pkg;
3801
3803
  });
3802
3804
  if (remainingPnpmOverrides) migratePnpmOverridesToWorkspaceYaml(projectPath, remainingPnpmOverrides);
3805
+ if (packageManager === PackageManager.yarn) rewriteYarnrcYml(projectPath);
3803
3806
  if (extractedStagedConfig) {
3804
3807
  if (mergeStagedConfigToViteConfig(projectPath, extractedStagedConfig, silent, report)) removeLintStagedFromPackageJson(packageJsonPath);
3805
3808
  }
@@ -3948,6 +3951,7 @@ function rewriteYarnrcYml(projectPath) {
3948
3951
  const yarnrcYmlPath = path.join(projectPath, ".yarnrc.yml");
3949
3952
  if (!fs.existsSync(yarnrcYmlPath)) fs.writeFileSync(yarnrcYmlPath, "");
3950
3953
  editYamlFile(yarnrcYmlPath, (doc) => {
3954
+ if (!doc.has("nodeLinker")) doc.set("nodeLinker", "node-modules");
3951
3955
  rewriteCatalog(doc);
3952
3956
  });
3953
3957
  }
@@ -3984,7 +3988,7 @@ function rewriteBunCatalog(projectPath) {
3984
3988
  if (workspacesObj?.catalog != null) workspacesObj.catalog = catalog;
3985
3989
  else pkg.catalog = catalog;
3986
3990
  const overrides = { ...pkg.overrides };
3987
- for (const key of Object.keys(VITE_PLUS_OVERRIDE_PACKAGES)) overrides[key] = "catalog:";
3991
+ for (const [key, value] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) overrides[key] = value.startsWith("file:") ? value : "catalog:";
3988
3992
  pkg.overrides = overrides;
3989
3993
  return pkg;
3990
3994
  });
@@ -4689,76 +4693,83 @@ function migrateNodeVersionManagerFile(projectPath, detection, report) {
4689
4693
  }
4690
4694
  //#endregion
4691
4695
  //#region src/utils/agent.ts
4692
- const AGENT_ALIASES = {
4693
- chatgpt: "chatgpt-codex",
4694
- codex: "chatgpt-codex"
4695
- };
4696
4696
  const AGENTS = [
4697
4697
  {
4698
- id: "chatgpt-codex",
4699
- label: "ChatGPT (Codex)",
4700
- targetPath: "AGENTS.md"
4698
+ id: "agents",
4699
+ label: "AGENTS.md",
4700
+ targetPath: "AGENTS.md",
4701
+ hint: "Codex, Amp, OpenCode, and similar agents",
4702
+ aliases: [
4703
+ "agents.md",
4704
+ "chatgpt",
4705
+ "chatgpt-codex",
4706
+ "codex",
4707
+ "amp",
4708
+ "kilo",
4709
+ "kilo-code",
4710
+ "kiro",
4711
+ "kiro-cli",
4712
+ "opencode",
4713
+ "other"
4714
+ ]
4701
4715
  },
4702
4716
  {
4703
4717
  id: "claude",
4704
- label: "Claude Code",
4705
- targetPath: "CLAUDE.md"
4718
+ label: "CLAUDE.md",
4719
+ targetPath: "CLAUDE.md",
4720
+ hint: "Claude Code",
4721
+ aliases: ["claude.md", "claude-code"]
4706
4722
  },
4707
4723
  {
4708
4724
  id: "gemini",
4709
- label: "Gemini CLI",
4710
- targetPath: "GEMINI.md"
4725
+ label: "GEMINI.md",
4726
+ targetPath: "GEMINI.md",
4727
+ hint: "Gemini CLI",
4728
+ aliases: ["gemini.md", "gemini-cli"]
4711
4729
  },
4712
4730
  {
4713
4731
  id: "copilot",
4714
- label: "GitHub Copilot",
4715
- targetPath: ".github/copilot-instructions.md"
4732
+ label: ".github/copilot-instructions.md",
4733
+ targetPath: ".github/copilot-instructions.md",
4734
+ hint: "GitHub Copilot",
4735
+ aliases: ["github-copilot", "copilot-instructions.md"]
4716
4736
  },
4717
4737
  {
4718
4738
  id: "cursor",
4719
- label: "Cursor",
4720
- targetPath: ".cursor/rules/viteplus.mdc"
4739
+ label: ".cursor/rules/viteplus.mdc",
4740
+ targetPath: ".cursor/rules/viteplus.mdc",
4741
+ hint: "Cursor",
4742
+ aliases: ["viteplus.mdc"]
4721
4743
  },
4722
4744
  {
4723
4745
  id: "jetbrains",
4724
- label: "JetBrains AI Assistant",
4725
- targetPath: ".aiassistant/rules/viteplus.md"
4726
- },
4727
- {
4728
- id: "amp",
4729
- label: "Amp",
4730
- targetPath: "AGENTS.md"
4731
- },
4732
- {
4733
- id: "kiro",
4734
- label: "Kiro",
4735
- targetPath: "AGENTS.md"
4736
- },
4737
- {
4738
- id: "opencode",
4739
- label: "OpenCode",
4740
- targetPath: "AGENTS.md"
4741
- },
4742
- {
4743
- id: "other",
4744
- label: "Other",
4745
- targetPath: "AGENTS.md"
4746
+ label: ".aiassistant/rules/viteplus.md",
4747
+ targetPath: ".aiassistant/rules/viteplus.md",
4748
+ hint: "JetBrains AI Assistant",
4749
+ aliases: [
4750
+ "jetbrains",
4751
+ "jetbrains-ai-assistant",
4752
+ "aiassistant",
4753
+ "viteplus.md"
4754
+ ]
4746
4755
  }
4747
4756
  ];
4757
+ const AGENT_DEFAULT_ID = "agents";
4748
4758
  const AGENT_STANDARD_PATH = "AGENTS.md";
4749
4759
  const AGENT_INSTRUCTIONS_START_MARKER = "<!--VITE PLUS START-->";
4750
4760
  const AGENT_INSTRUCTIONS_END_MARKER = "<!--VITE PLUS END-->";
4761
+ const AGENT_ALIASES = Object.fromEntries(AGENTS.flatMap((option) => (option.aliases ?? []).map((alias) => [normalizeAgentName(alias), option.id])));
4751
4762
  async function selectAgentTargetPaths({ interactive, agent, onCancel }) {
4752
4763
  if (agent === false) return;
4753
4764
  if (interactive && !agent) {
4754
4765
  const selectedAgents = await multiselect({
4755
- message: "Which agents are you using?\n " + styleText("gray", "Writes an instruction file for each selected agent to help it understand `vp` commands and the project workflow."),
4766
+ message: "Which coding agent instruction files should Vite+ create?",
4756
4767
  options: AGENTS.map((option) => ({
4757
4768
  label: option.label,
4758
4769
  value: option.id,
4759
- hint: option.targetPath
4770
+ hint: option.hint
4760
4771
  })),
4761
- initialValues: ["chatgpt-codex"],
4772
+ initialValues: [AGENT_DEFAULT_ID],
4762
4773
  required: false
4763
4774
  });
4764
4775
  if (q(selectedAgents)) {
@@ -4768,7 +4779,7 @@ async function selectAgentTargetPaths({ interactive, agent, onCancel }) {
4768
4779
  if (selectedAgents.length === 0) return;
4769
4780
  return resolveAgentTargetPaths(selectedAgents);
4770
4781
  }
4771
- return resolveAgentTargetPaths(agent ?? "other");
4782
+ return resolveAgentTargetPaths(agent ?? AGENT_DEFAULT_ID);
4772
4783
  }
4773
4784
  function detectExistingAgentTargetPaths(projectRoot) {
4774
4785
  const detectedPaths = [];
@@ -4822,7 +4833,7 @@ function resolveSingleAgentTargetPath(agent) {
4822
4833
  const normalized = normalizeAgentName(agent);
4823
4834
  const alias = AGENT_ALIASES[normalized];
4824
4835
  const resolved = alias ? normalizeAgentName(alias) : normalized;
4825
- return AGENTS.find((option) => normalizeAgentName(option.id) === resolved || normalizeAgentName(option.label) === resolved)?.targetPath ?? AGENTS[AGENTS.length - 1].targetPath;
4836
+ return AGENTS.find((option) => normalizeAgentName(option.id) === resolved || normalizeAgentName(option.label) === resolved || normalizeAgentName(option.targetPath) === resolved || option.aliases?.some((candidate) => normalizeAgentName(candidate) === resolved))?.targetPath ?? AGENT_STANDARD_PATH;
4826
4837
  }
4827
4838
  /**
4828
4839
  * Detect agent instruction files that would conflict (exist without markers).
package/dist/bin.js CHANGED
@@ -32,7 +32,7 @@ import { relative } from "node:path/win32";
32
32
  */
33
33
  async function fmt() {
34
34
  return {
35
- binPath: resolve$1("oxfmt/bin/oxfmt"),
35
+ binPath: join(dirname(dirname(resolve$1("oxfmt"))), "bin", "oxfmt"),
36
36
  envs: { ...DEFAULT_ENVS }
37
37
  };
38
38
  }
@@ -1,5 +1,5 @@
1
1
  import { r as log } from "../terminal-P9aw9Fib.js";
2
- import { D as promptGitHooks, T as defaultInteractive, d as ensurePreCommitHook, f as hasStagedConfigInViteConfig, i as updateExistingAgentInstructions } from "../agent-E1Gv83vW.js";
2
+ import { D as promptGitHooks, T as defaultInteractive, d as ensurePreCommitHook, f as hasStagedConfigInViteConfig, i as updateExistingAgentInstructions } from "../agent-BcSb6dt_.js";
3
3
  import { t as lib_default } from "../lib-BamM40b7.js";
4
4
  import { t as renderCliDoc } from "../help-BtkjXtRM.js";
5
5
  import { join } from "node:path";
@@ -1,10 +1,10 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "../chunk-DsIazq42.js";
2
2
  import { a as require_cross_spawn } from "../tsconfig-Do47YXpz.js";
3
3
  import { a as success, i as muted, r as log, t as accent } from "../terminal-P9aw9Fib.js";
4
- import { A as selectPackageManager, B as log$1, D as promptGitHooks, E as downloadPackageManager$1, F as PackageManager, G as text, K as require_picocolors, L as cancel, M as displayRelative, N as templatesDir, O as runViteFmt, P as DependencyType, R as confirm, T as defaultInteractive, U as select, V as multiselect, W as spinner, a as writeAgentInstructions, b as rewriteMonorepoProject, k as runViteInstall, n as detectExistingAgentTargetPaths, p as installGitHooks, q, r as selectAgentTargetPaths, x as rewriteStandaloneProject, y as rewriteMonorepo, z as intro } from "../agent-E1Gv83vW.js";
4
+ import { A as selectPackageManager, B as log$1, D as promptGitHooks, E as downloadPackageManager$1, F as PackageManager, G as text, K as require_picocolors, L as cancel, M as displayRelative, N as templatesDir, O as runViteFmt, P as DependencyType, R as confirm, T as defaultInteractive, U as select, V as multiselect, W as spinner, a as writeAgentInstructions, b as rewriteMonorepoProject, k as runViteInstall, n as detectExistingAgentTargetPaths, p as installGitHooks, q, r as selectAgentTargetPaths, x as rewriteStandaloneProject, y as rewriteMonorepo, z as intro } from "../agent-BcSb6dt_.js";
5
5
  import { t as lib_default } from "../lib-BamM40b7.js";
6
6
  import { c as readJsonFile, o as editJsonFile, t as checkNpmPackageExists } from "../package-DhXOF9Xm.js";
7
- import { a as detectExistingEditor, n as updatePackageJsonWithDeps, o as selectEditor, r as updateWorkspaceConfig, s as writeEditorConfigs, t as detectWorkspace$1 } from "../workspace-DIiBk5nk.js";
7
+ import { a as detectExistingEditor, n as updatePackageJsonWithDeps, o as selectEditor, r as updateWorkspaceConfig, s as writeEditorConfigs, t as detectWorkspace$1 } from "../workspace-Cq_BIreC.js";
8
8
  import { t as renderCliDoc } from "../help-BtkjXtRM.js";
9
9
  import path from "node:path";
10
10
  import { runCommand, vitePlusHeader } from "../../binding/index.js";
@@ -3680,7 +3680,7 @@ const helpMessage = renderCliDoc({
3680
3680
  },
3681
3681
  {
3682
3682
  label: "--agent NAME",
3683
- description: "Create an agent instructions file for the specified agent."
3683
+ description: "Write coding agent instructions to AGENTS.md, CLAUDE.md, etc."
3684
3684
  },
3685
3685
  {
3686
3686
  label: "--editor NAME",
@@ -3965,6 +3965,7 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
3965
3965
  let selectedParentDir;
3966
3966
  let remoteTargetDir;
3967
3967
  let shouldSetupHooks = false;
3968
+ const installArgs = process.env.CI ? ["--no-frozen-lockfile"] : void 0;
3968
3969
  if (!selectedTemplateName) {
3969
3970
  const template = await select({
3970
3971
  message: "",
@@ -4168,7 +4169,7 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
4168
4169
  rewriteMonorepo(workspaceInfo, void 0, compactOutput);
4169
4170
  if (shouldSetupHooks) installGitHooks(fullPath, compactOutput);
4170
4171
  updateCreateProgress("Installing dependencies");
4171
- const installSummary = await runViteInstall(fullPath, options.interactive, void 0, { silent: compactOutput });
4172
+ const installSummary = await runViteInstall(fullPath, options.interactive, installArgs, { silent: compactOutput });
4172
4173
  updateCreateProgress("Formatting code");
4173
4174
  await runViteFmt(fullPath, options.interactive, void 0, { silent: compactOutput });
4174
4175
  clearCreateProgress();
@@ -4272,7 +4273,7 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
4272
4273
  }
4273
4274
  updateWorkspaceConfig(projectDir, workspaceInfo);
4274
4275
  updateCreateProgress("Installing dependencies");
4275
- installSummary = await runViteInstall(workspaceInfo.rootDir, options.interactive, void 0, { silent: compactOutput });
4276
+ installSummary = await runViteInstall(workspaceInfo.rootDir, options.interactive, installArgs, { silent: compactOutput });
4276
4277
  updateCreateProgress("Formatting code");
4277
4278
  await runViteFmt(workspaceInfo.rootDir, options.interactive, [projectDir], { silent: compactOutput });
4278
4279
  } else {
@@ -4280,7 +4281,7 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
4280
4281
  rewriteStandaloneProject(fullPath, workspaceInfo, void 0, compactOutput);
4281
4282
  if (shouldSetupHooks) installGitHooks(fullPath, compactOutput);
4282
4283
  updateCreateProgress("Installing dependencies");
4283
- installSummary = await runViteInstall(fullPath, options.interactive, void 0, { silent: compactOutput });
4284
+ installSummary = await runViteInstall(fullPath, options.interactive, installArgs, { silent: compactOutput });
4284
4285
  updateCreateProgress("Formatting code");
4285
4286
  await runViteFmt(fullPath, options.interactive, void 0, { silent: compactOutput });
4286
4287
  }
@@ -1,11 +1,11 @@
1
1
  import { r as __toESM } from "../chunk-DsIazq42.js";
2
2
  import { l as isForceOverrideMode } from "../main-GHdRghJ-.js";
3
3
  import { i as muted, r as log, t as accent } from "../terminal-P9aw9Fib.js";
4
- import { A as selectPackageManager, B as log$1, D as promptGitHooks, E as downloadPackageManager$1, F as PackageManager, H as outro, I as require_semver, M as displayRelative, R as confirm, T as defaultInteractive, U as select, W as spinner, _ as migratePrettierToOxfmt, a as writeAgentInstructions, c as detectEslintProject, g as migrateNodeVersionManagerFile, h as migrateEslintToOxlint, j as upgradeYarn, k as runViteInstall, l as detectNodeVersionManagerFile, m as mergeViteConfigFiles, n as detectExistingAgentTargetPaths, o as checkViteVersion, p as installGitHooks, q, r as selectAgentTargetPaths, s as checkVitestVersion, t as detectAgentConflicts, u as detectPrettierProject, v as preflightGitHooksSetup, w as cancelAndExit, x as rewriteStandaloneProject, y as rewriteMonorepo } from "../agent-E1Gv83vW.js";
4
+ import { A as selectPackageManager, B as log$1, D as promptGitHooks, E as downloadPackageManager$1, F as PackageManager, H as outro, I as require_semver, M as displayRelative, R as confirm, T as defaultInteractive, U as select, W as spinner, _ as migratePrettierToOxfmt, a as writeAgentInstructions, c as detectEslintProject, g as migrateNodeVersionManagerFile, h as migrateEslintToOxlint, j as upgradeYarn, k as runViteInstall, l as detectNodeVersionManagerFile, m as mergeViteConfigFiles, n as detectExistingAgentTargetPaths, o as checkViteVersion, p as installGitHooks, q, r as selectAgentTargetPaths, s as checkVitestVersion, t as detectAgentConflicts, u as detectPrettierProject, v as preflightGitHooksSetup, w as cancelAndExit, x as rewriteStandaloneProject, y as rewriteMonorepo } from "../agent-BcSb6dt_.js";
5
5
  import { t as lib_default } from "../lib-BamM40b7.js";
6
6
  import { a as readNearestPackageJson, i as hasVitePlusDependency } from "../package-DhXOF9Xm.js";
7
7
  import { r as createMigrationReport } from "../report-DHdnkZbA.js";
8
- import { i as detectEditorConflicts, o as selectEditor, s as writeEditorConfigs, t as detectWorkspace$1 } from "../workspace-DIiBk5nk.js";
8
+ import { i as detectEditorConflicts, o as selectEditor, s as writeEditorConfigs, t as detectWorkspace$1 } from "../workspace-Cq_BIreC.js";
9
9
  import { t as renderCliDoc } from "../help-BtkjXtRM.js";
10
10
  import path from "node:path";
11
11
  import { vitePlusHeader } from "../../binding/index.js";
@@ -25,7 +25,7 @@ async function confirmEslintMigration(interactive) {
25
25
  initialValue: true
26
26
  });
27
27
  if (q(confirmed)) cancelAndExit();
28
- return !!confirmed;
28
+ return confirmed;
29
29
  }
30
30
  return true;
31
31
  }
@@ -54,7 +54,7 @@ async function confirmPrettierMigration(interactive) {
54
54
  initialValue: true
55
55
  });
56
56
  if (q(confirmed)) cancelAndExit();
57
- return !!confirmed;
57
+ return confirmed;
58
58
  }
59
59
  log$1.info("Prettier configuration detected. Auto-migrating to Oxfmt...");
60
60
  return true;
@@ -81,7 +81,7 @@ async function confirmNodeVersionFileMigration(interactive, detection) {
81
81
  initialValue: true
82
82
  });
83
83
  if (q(confirmed)) cancelAndExit();
84
- return !!confirmed;
84
+ return confirmed;
85
85
  }
86
86
  return true;
87
87
  }
@@ -102,11 +102,11 @@ const helpMessage = renderCliDoc({
102
102
  rows: [
103
103
  {
104
104
  label: "--agent NAME",
105
- description: "Write agent instructions file into the project (e.g. chatgpt, claude, opencode)."
105
+ description: "Write coding agent instructions to AGENTS.md, CLAUDE.md, etc."
106
106
  },
107
107
  {
108
108
  label: "--no-agent",
109
- description: "Skip writing agent instructions file"
109
+ description: "Skip writing coding agent instructions"
110
110
  },
111
111
  {
112
112
  label: "--editor NAME",
package/dist/versions.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export const versions = {
2
- "vite": "8.0.5",
2
+ "vite": "8.0.7",
3
3
  "rolldown": "1.0.0-rc.13",
4
4
  "tsdown": "0.21.7",
5
- "vitest": "4.1.2",
6
- "oxlint": "1.58.0",
7
- "oxfmt": "0.43.0",
5
+ "vitest": "4.1.3",
6
+ "oxlint": "1.59.0",
7
+ "oxfmt": "0.44.0",
8
8
  "oxlint-tsgolint": "0.20.0"
9
9
  };
@@ -1,4 +1,4 @@
1
- import { B as log, C as readYamlFile, F as PackageManager, S as editYamlFile, U as select, q } from "./agent-E1Gv83vW.js";
1
+ import { B as log, C as readYamlFile, F as PackageManager, S as editYamlFile, U as select, q } from "./agent-BcSb6dt_.js";
2
2
  import { t as require_dist } from "./dist-DPsDLqya.js";
3
3
  import { c as readJsonFile, l as writeJsonFile, o as editJsonFile, r as getScopeFromPackageName } from "./package-DhXOF9Xm.js";
4
4
  import path, { posix, win32 } from "node:path";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plus",
3
- "version": "0.1.16",
3
+ "version": "0.1.17-alpha.1",
4
4
  "description": "The Unified Toolchain for the Web",
5
5
  "homepage": "https://viteplus.dev/guide",
6
6
  "bugs": {
@@ -319,11 +319,11 @@
319
319
  },
320
320
  "dependencies": {
321
321
  "@oxc-project/types": "=0.123.0",
322
- "oxfmt": "=0.43.0",
323
- "oxlint": "=1.58.0",
322
+ "oxfmt": "=0.44.0",
323
+ "oxlint": "=1.59.0",
324
324
  "oxlint-tsgolint": "=0.20.0",
325
- "@voidzero-dev/vite-plus-core": "0.1.16",
326
- "@voidzero-dev/vite-plus-test": "0.1.16"
325
+ "@voidzero-dev/vite-plus-core": "0.1.17-alpha.1",
326
+ "@voidzero-dev/vite-plus-test": "0.1.17-alpha.1"
327
327
  },
328
328
  "devDependencies": {
329
329
  "@napi-rs/cli": "^3.6.0",
@@ -348,8 +348,8 @@
348
348
  "tsdown": "^0.21.7",
349
349
  "validate-npm-package-name": "^7.0.2",
350
350
  "yaml": "^2.8.1",
351
- "@voidzero-dev/vite-plus-prompts": "0.0.0",
352
- "vite": "npm:@voidzero-dev/vite-plus-core@0.1.16"
351
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.1.17-alpha.1",
352
+ "@voidzero-dev/vite-plus-prompts": "0.0.0"
353
353
  },
354
354
  "napi": {
355
355
  "binaryName": "vite-plus",
@@ -369,14 +369,14 @@
369
369
  "node": "^20.19.0 || >=22.12.0"
370
370
  },
371
371
  "optionalDependencies": {
372
- "@voidzero-dev/vite-plus-darwin-arm64": "0.1.16",
373
- "@voidzero-dev/vite-plus-darwin-x64": "0.1.16",
374
- "@voidzero-dev/vite-plus-linux-arm64-gnu": "0.1.16",
375
- "@voidzero-dev/vite-plus-linux-arm64-musl": "0.1.16",
376
- "@voidzero-dev/vite-plus-linux-x64-gnu": "0.1.16",
377
- "@voidzero-dev/vite-plus-linux-x64-musl": "0.1.16",
378
- "@voidzero-dev/vite-plus-win32-x64-msvc": "0.1.16",
379
- "@voidzero-dev/vite-plus-win32-arm64-msvc": "0.1.16"
372
+ "@voidzero-dev/vite-plus-darwin-arm64": "0.1.17-alpha.1",
373
+ "@voidzero-dev/vite-plus-darwin-x64": "0.1.17-alpha.1",
374
+ "@voidzero-dev/vite-plus-linux-arm64-gnu": "0.1.17-alpha.1",
375
+ "@voidzero-dev/vite-plus-linux-arm64-musl": "0.1.17-alpha.1",
376
+ "@voidzero-dev/vite-plus-linux-x64-gnu": "0.1.17-alpha.1",
377
+ "@voidzero-dev/vite-plus-linux-x64-musl": "0.1.17-alpha.1",
378
+ "@voidzero-dev/vite-plus-win32-x64-msvc": "0.1.17-alpha.1",
379
+ "@voidzero-dev/vite-plus-win32-arm64-msvc": "0.1.17-alpha.1"
380
380
  },
381
381
  "scripts": {
382
382
  "build": "oxnode -C dev ./build.ts",
@@ -18,6 +18,12 @@ curl -fsSL https://vite.plus | bash
18
18
  irm https://vite.plus/ps1 | iex
19
19
  ```
20
20
 
21
+ Alternatively, download and run [`vp-setup.exe`](https://viteplus.dev/vp-setup).
22
+
23
+ ::: tip SmartScreen warning
24
+ The `vp-setup.exe` is not yet code-signed. Your browser may show a warning when downloading. Click **"..."** → **"Keep"** → **"Keep anyway"** to proceed. If Windows Defender SmartScreen blocks the file when you run it, click **"More info"** → **"Run anyway"**.
25
+ :::
26
+
21
27
  After installation, open a new shell and run:
22
28
 
23
29
  ```bash
@@ -8,7 +8,7 @@ Use `vpx`, `vp exec`, and `vp dlx` to run binaries without switching between loc
8
8
 
9
9
  Use the other binary commands when you need stricter control:
10
10
 
11
- - `vpx` resolves a package binary locally first and can download it when needed
11
+ - `vpx` resolves a package binary locally first by default and downloads it if not found; with `pkg@version`, `--package/-p`, or `--shell-mode`, it runs via `vp dlx`
12
12
  - `vp exec` runs a binary from the current project's `node_modules/.bin`
13
13
  - `vp dlx` runs a package binary without adding it as a dependency
14
14
 
@@ -22,7 +22,7 @@ vpx <pkg[@version]> [args...]
22
22
 
23
23
  ### Options
24
24
 
25
- - `-p, --package <name>` installs one or more packages before running the command
25
+ - `-p, --package <name>` installs one or more additional packages before running the command
26
26
  - `-c, --shell-mode` executes the command inside a shell
27
27
  - `-s, --silent` suppresses Vite+ output and only shows the command output
28
28
 
@@ -9,7 +9,7 @@
9
9
  ],
10
10
  "type": "module",
11
11
  "scripts": {
12
- "ready": "vp fmt && vp lint && vp run -r test && vp run -r build",
12
+ "ready": "vp check && vp run -r test && vp run -r build",
13
13
  "dev": "vp run website#dev"
14
14
  },
15
15
  "engines": {