更改 PATH 系统环境变量后 npm 开始不起作用

npm start not working after changing PATH system environment variable

当我尝试使用 npm start 启动我的 React 应用程序时,出现以下错误:

events.js:377
      throw er; // Unhandled 'error' event
      ^

Error: spawn powershell ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:274:19)
    at onErrorNT (internal/child_process.js:469:16)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
Starting the development server...

events.js:377
      throw er; // Unhandled 'error' event
      ^

Error: spawn powershell ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:274:19)
    at onErrorNT (internal/child_process.js:469:16)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:280:12)
    at onErrorNT (internal/child_process.js:469:16)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'spawn powershell',
  path: 'powershell',
  spawnargs: [
    '-NoProfile',
    '-NonInteractive',
    '–ExecutionPolicy',
    'Bypass',
    '-EncodedCommand',
    'UwB0AGEAcgB0ACAAIgBgACIAaAB0AHQAcAA6AC8ALwBsAG8AYwBhAGwAaABvAHMAdAA6ADgAMAA4ADYALwBwAG8AcgB0AGEAbABgACIAIgA='
  ]
}

命令在Visual Studio代码中执行。 在命令 shell 中执行命令会产生几乎相同的错误:


> fe-core4@0.1.0 start
> set PORT=8086 && set HTTPS=false && react-scripts start

i 「wds」: Project is running at http://172.19.42.69/
i 「wds」: webpack output is served from /portal
i 「wds」: Content not from webpack is served from C:\Users\...
i 「wds」: 404s will fallback to /portal/
Starting the development server...

events.js:377
      throw er; // Unhandled 'error' event
      ^

Error: spawn powershell ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:274:19)
    at onErrorNT (internal/child_process.js:469:16)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:280:12)
    at onErrorNT (internal/child_process.js:469:16)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'spawn powershell',
  path: 'powershell',
  spawnargs: [
    '-NoProfile',
    '-NonInteractive',
    '–ExecutionPolicy',
    'Bypass',
    '-EncodedCommand',
    'UwB0AGEAcgB0ACAAIgBgACIAaAB0AHQAcAA6AC8ALwBsAG8AYwBhAGwAaABvAHMAdAA6ADgAMAA4ADYALwBwAG8AcgB0AGEAbABgACIAIgA='
  ]
}

最近我在安装 maven 时遇到了问题,不小心删除了 PATH 系统环境变量。我以某种方式恢复了它,但也许有些东西仍然无法正常工作,这可能是错误的原因。

我的PATH系统环境变量:

%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
%USERPROFILE%\AppData\Local\Programs\Microsoft VS Code\bin
%MAVEN_HOME%\bin
C:\Windows
C:\Windows\System32\Wbem
C:\Program Files\nodejs\
C:\Program Files\Git\bin\
C:\Program Files\Git\cmd\
C:\Windows\System32

更新

npm start 运行以下代码: set PORT=8086 && set HTTPS=false && react-scripts start

NPM 和 node.js 似乎工作正常:

> node -v

v16.13.2

> npm -v

8.4.0

我找到了解决问题的方法。

起初我从朋友那里复制了PATH系统环境变量的值:

%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
%USERPROFILE%\AppData\Local\Programs\Microsoft VS Code\bin
%MAVEN_HOME%\bin
C:\Program Files\Git\bin\
C:\Program Files\Git\cmd\
%SystemRoot%\system32
%SystemRoot%
%SystemRoot%\System32\Wbem
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
%SYSTEMROOT%\System32\OpenSSH
C:\Program Files\nodejs\

之后,我尝试执行的每个 npm 命令都出现以下错误

npm ERR! Unexpected token '.'

所以我按照 this guide 完全删除节点,然后重新安装节点 lts 版本 14.19.0。之后一切正常。