Skip to content

[BUG] When invoked from PowerShell prompt on Windows, positional arguments are not properly passed to NPM scripts #7440

Closed
@noseratio

Description

@noseratio

Is there an existing issue for this?

  • I have searched the existing issues

This issue exists in the latest npm version

  • I am using the latest npm

Current Behavior

process.argv is missing CLI arguments.

Using Node.js v22.0.0, NPM v10.6.0 and PowerShell v7.4.2 on Windows 11.

package.js:

{
  "name": "cli-test",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  }
}

index.js:

console.dir(process.argv);

Running it from a PowerShell prompt:

PS C:\temp\cli-test> npm start -- command --arg=value

> cli-test@1.0.0 start
> node index.js command

[
  'C:\\Program Files\\nodejs\\node.exe',
  'C:\\temp\\cli-test\\index.js',
  'command'
]

Note how --arg=value is missing from process.argv.

Expected Behavior

--arg=value must be present in process.argv. It works properly if invoked from cmd (rather than PowerShell):

PS C:\temp\cli-test> cmd
Microsoft Windows [Version 10.0.22631.3527]
(c) Microsoft Corporation. All rights reserved.

C:\temp\cli-test>npm start -- command --arg=value

> cli-test@1.0.0 start
> node index.js command --arg=value

[
  'C:\\Program Files\\nodejs\\node.exe',
  'C:\\temp\\cli-test\\index.js',
  'command',
  '--arg=value'
]

It also works as expected under previous versions of Node v21.7.3 and NPM v10.5.0 and the same version of PowerShell v7.4.2.

Steps To Reproduce

See above in "Current Behavior".

Environment

  • npm: 10.6.0
  • Node.js: 22.0.0
  • OS Name: Windows 11 23H2 Build 22631.3527
  • System Model Name:
  • npm config:
; "builtin" config from C:\Users\User\AppData\Roaming\npm\node_modules\npm\npmrc

prefix = "C:\\Users\\User\\AppData\\Roaming\\npm"

; node bin location = C:\Program Files\nodejs\node.exe
; node version = v22.0.0
; npm local prefix = C:\temp\cli-test
; npm version = 10.6.0
; cwd = C:\temp\cli-test
; HOME = C:\Users\User
; Run `npm config ls -l` to show all defaults.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @wraithgar@noseratio

        Issue actions

          [BUG] When invoked from PowerShell prompt on Windows, positional arguments are not properly passed to NPM scripts · Issue #7440 · npm/cli