Skip to content

[BUG] npm start fails with ERR_INVALID_ARG_TYPE due to missing ComSpec on Windows #131

@SongMinQQ

Description

@SongMinQQ

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

2025-04-03T00_27_13_487Z-debug-0.log

This is caused by the spawnWithShell function expecting the environment variable ComSpec to be defined (usually cmd.exe on Windows). However, in some Windows environments, ComSpec might be undefined.

Image

Actual behavior:

Fails with ERR_INVALID_ARG_TYPE.

Proposed solution:

Modify the spawnWithShell function as follows:

if (command === true) {
  command = process.platform === 'win32'
    ? (process.env.ComSpec || 'C:\\Windows\\System32\\cmd.exe')
    : 'sh'
}

Expected Behavior

It should default to C:\Windows\System32\cmd.exe if ComSpec is undefined, allowing the command to succeed.

Steps To Reproduce

  1. On Windows, ensure the environment variable ComSpec is unset or missing.
  2. Run an npm command like npm start that uses opts.shell = true internally.
  3. Observe the above error.

Environment

  • Node: v22.14.0 (managed by nvm-windows)
  • npm: v11.2.0
  • OS: Windows 10
  • promise-spawn version: (version used by npm internally)
  • platform: LG gram

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bugthing that needs fixingNeeds Triageneeds an initial review

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions