Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Proposal: per-task shell/interpreter selection (bash/zsh/pwsh/node) + explicit script mode

Aberta
#275 1 comentário 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
42/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
rust, shell
Domínio
cli, tooling

Direção de pesquisa

Comece por crates/vite_task_plan/src/plan.rs e PR #100 para entender o tratamento existente de fallback e de argumentos do shell. O MVP estará concluído quando um shell opcional por tarefa executar o comando como um único script, preservando o comportamento padrão; a sintaxe e a interação com outros modos ainda precisam de decisões de design.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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 -c or cmd.exe /c.

Refs:

Proposed behavior (Unspecified syntax)

Add an optional per-task configuration, e.g.:

  • shell: "bash -c" or shell: ["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 shell override for the existing fallback pipeline first:
    if shell is 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.
Linguagem predominante
Rust
Estrelas
468
Forks
42
Merge médio
2d 1h
PRs com merge (30d)
45

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de voidzero-dev/vite-task

Todas as issues de voidzero-dev/vite-task

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.