Proposal: per-task shell/interpreter selection (bash/zsh/pwsh/node) + explicit script mode
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
从 crates/vite_task_plan/src/plan.rs 和 PR #100 开始,了解现有的 fallback 和 shell 参数处理方式。当每个任务都可以选择一个 shell,将命令作为一个脚本运行,同时保留默认行为时,MVP 即告完成;语法以及与其他模式的交互仍需要进行设计决策。
由索引模型根据 Issue 内容生成。
描述
Problem
Vite Tasks currently tries to parse commands statically (e.g. && lists) and otherwise falls back to running a shell (/bin/sh -c on Unix or cmd.exe /c on Windows).
However, many real-world tasks need:
- PowerShell on Windows,
- bash-specific features on Unix (vs
/bin/sh), - or explicit “always run as script” mode (never try to split/parse).
Not being able to choose the interpreter makes scripts less portable and pushes authors to wrap everything manually.
Evidence (primary)
- Plan has a hard-coded fallback to
/bin/sh -corcmd.exe /c.
Refs:
- https://github.com/voidzero-dev/vite-task/blob/main/crates/vite_task_plan/src/plan.rs
- PR showing shell-arg handling: https://github.com/voidzero-dev/vite-task/pull/100
Proposed behavior (Unspecified syntax)
Add an optional per-task configuration, e.g.:
shell: "bash -c"orshell: ["powershell.exe","-NoLogo","-Command"]
and/or an execution mode:mode: "auto"(current behavior),mode: "shell"(always run as script via chosen shell),mode: "spawn"(strict direct spawn; fail if not representable)
Use cases
- Windows repos standardizing on PowerShell scripts
- bash-only constructs (process substitution, arrays,
[[ ... ]], etc.) - Avoiding accidental fallback when a task should be strictly spawnable
Backward compatibility
- Default remains current behavior (auto).
- Opt-in only changes behavior for tasks that specify
shell/mode.
Minimal implementation suggestion (MVP)
- Implement
shelloverride for the existing fallback pipeline first:
ifshellis set, run the task command as one script in that shell (no splitting). - Later iterations can decide whether/how to combine with
&&splitting and caching.
- 主要语言
- Rust
- 星标
- 468
- 派生
- 42
- 平均合并
- 2 天 6 小时
- 30 天内合并 PR
- 30
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
voidzero-dev/vite-task 的其他 Issue
-
难度 5/5 一周以上 新手友好度 35/100
voidzero-dev/vite-task#738 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 78/100
voidzero-dev/vite-task#719 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
voidzero-dev/vite-task#717 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
voidzero-dev/vite-task#700 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 78/100
voidzero-dev/vite-task#699 ·
维护者通常 1 天内回复
查看 voidzero-dev/vite-task 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 74/100
trailofbits/dylint#2107 ·
维护者通常 1 天内回复
-
area:cli bug good first issue priority:medium
难度 2/5 1-3 小时 新手友好度 90/100
维护者通常 1 天内回复
-
arrays_zip with two same-named inputs fails with "ArrowArray struct has 2 children (expected 1)"未关闭bug requires-triage
难度 2/5 1-3 小时 新手友好度 78/100
apache/datafusion-comet#6251 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
bug false-positive harper-core linting
难度 2/5 1-3 小时 新手友好度 68/100
Automattic/harper#4471 ·
维护者通常 1 天内回复