Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Improve vp create completion reporting when installation or formatting fails

未关闭
#2,453 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@m0g3r 已经在做这个了。

开始于 2026年8月23日。

  • #2543 来自 @m0g3r —— 未关闭

评估

难度
3/5
预计耗时
1-2 天
新手友好度
65/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
typescript, vite
领域
cli

调研方向

从 packages/cli/src/create/bin.ts 开始,并使用 VP_CLI_BIN=/usr/bin/false 在 macOS 或 Linux 上运行复现。跟踪安装和格式化失败如何影响最终摘要、建议的下一步以及退出状态。当命令能够区分已生成的文件与完全成功的创建,并且一致地报告失败时,即可完成。

由索引模型根据 Issue 内容生成。

描述

Description

When dependency installation and formatting fail during vp create, the command can still finish by:

  • displaying the project as Scaffolded;
  • suggesting vp run as the next step;
  • returning exit code 0.

In the same command, the user is first shown that manual installation and formatting may still be required, but the final output and process status indicate that project creation completed successfully.

Observed flow

flowchart LR
    subgraph actual["Actual execution"]
        A["Project files are generated"] --> B["Dependency installation fails"]
        B --> C["Formatting fails"]
    end

    subgraph result["Final signals from the CLI"]
        D["Displays: Scaffolded"]
        D --> E["Suggests: Next: vp run"]
        E --> F["Returns exit code 0"]
    end

    C -->|"But the command still continues to"| D

The project directory and package.json are generated, but dependency installation and formatting do not complete. Despite that, the final message, suggested next step, and exit code all communicate that the complete operation succeeded.

Reproduction

On macOS or Linux, run the following commands in a temporary directory:

workdir=$(mktemp -d)
cd "$workdir"

env -u VP_SKIP_INSTALL \
  VP_CLI_BIN=/usr/bin/false \
  vp create vite:application \
  --no-interactive \
  --no-hooks \
  --no-git \
  --directory create-failure-demo

exit_code=$?

echo "exit code: $exit_code"
test -d create-failure-demo && echo "project directory exists"
test -f create-failure-demo/package.json && echo "package.json exists"
test -d create-failure-demo/node_modules || echo "node_modules missing"

VP_CLI_BIN=/usr/bin/false makes the installation and formatting commands started internally by vp create return a failure consistently.

Actual result

The stable terminal output contains the following lines:

You may need to run "vp install" manually in <temporary-directory>/create-failure-demo
You may need to run "vp fmt" manually in <temporary-directory>/create-failure-demo
◇ Scaffolded create-failure-demo with Vite application
• Node 25.9.0  pnpm 11.21.0
→ Next: cd create-failure-demo && vp run

The recorded filesystem and process state is:

exit code: 0
project directory exists
package.json exists
node_modules missing

My understanding of the behavior

This appears to combine two different states:

  1. The project directory and template files were generated.
  2. The complete project creation process finished successfully.

In this reproduction, the first state is true: the create-failure-demo directory and its package.json exist.

The second state is not true: dependency installation and formatting both returned failures, and node_modules was not created.

The final output does not distinguish between these states. Instead, it presents three strong success signals:

  • Scaffolded indicates that project creation completed.
  • Next: vp run indicates that the project is ready to run.
  • Exit code 0 indicates that the entire command completed successfully.

Even though the manual recovery messages appear earlier, users will naturally treat the final lines as the authoritative result of the command. This is especially noticeable after a long installation log, where the final summary is usually the first place users look to understand what happened.

For scripts and CI systems, the result is even less ambiguous: they generally use the process exit code rather than interpret terminal text. An exit code of 0 records this operation as successful.

The command therefore exposes several conflicting states at the same time:

Dependency installation: failed
Formatting: failed
Project directory: created
package.json: created
node_modules: missing
Final summary: successful
Suggested next step: run the project
Process exit status: successful

The continued existence of the generated directory is not necessarily the confusing part. The confusion comes from presenting “project files were generated” and “the complete creation process succeeded” as the same state.

Verification environment

  • macOS 27.0 on arm64
  • Node.js v25.9.0
  • Package manager selected by vp create: pnpm 11.21.0
  • Confirmed with the bundled local CLI and directly against packages/cli/src/create/bin.ts at commit 29036b2ff12ea30f80088de4a593842df2846c3b
主要语言
Rust
星标
6k
派生
274
平均合并
1 天 12 小时
30 天内合并 PR
205

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

voidzero-dev/vite-plus 的其他 Issue

查看 voidzero-dev/vite-plus 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。