create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT

今天下午遇到一个问题,废了好大的劲才解决,所以写了这篇傻瓜式文章,希望可以帮助到大家。

根据create-react-app工具创建react,前面几步一切正常,到了npm start这一步的时候,报了这样的错。
create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT_第1张图片

搜了很多文章,都说是Path环境变量有问题,让把%SystemRoot%\system32 加入到path变量中。

但是直接复制还是错的,这句话理解才可以使用。

理解这句话:

  • %SystemRoot% 两个百分号之间夹着的是一个匹配变量
  • %SystemRoot%\system32 表示system32文件所在的路径

所以说就是要把system32文件所在的路径添加到path环境变量中。大家可以找一下自己电脑里这个文件在什么地方,我的在C:\Windows\System32(一般都在这里)。

现在来一步一步解决问题:
1.打开控制面板,搜索系统,点击编辑系统环境变量
create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT_第2张图片

2.点击环境变量
create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT_第3张图片
3.环境变量里面包括用户环境变量系统的环境变量
系统环境变量对全部用户起作用,而用户环境变量仅仅对当前用户起作用。
我们直接在系统环境变量添加path值,点击编辑。
create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT_第4张图片
4.添加一条

C:\Windows\System32
create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT_第5张图片

现在就解决了问题,成功运行啦!还弹出了在3000端口运行的react。
create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT_第6张图片
虽然解决了问题,但是对原因好像还是云里雾里的。
搞懂它!

解释:

  • 出错的原因?
    这个问题一般不会出现,我这里出现的原因是之前我在配置MongoDB数据库的环境变量的时候把C:\Windows\System32这个path路径(大小写)写错了,所以系统找不到C:\Windows\System32这个路径就会报错了。

  • 为什么添加了那个path路径就不报错了呢(环境变量的原理)?

    • Path环境变量存放的是什么?
      是一连串的路径。
    • 存放规则?
      不同的路径之间,用英文的分号(;)分隔开。
    • 存放那些路径有什么用(或者说执行的过程到底是什么样的)?
      系统执行用户命令时,若用户未给出绝对路径,则首先在当前目录下寻找相应的可执行文件、批处理文件(另外一种可以执行的文件)等。若找不到,再依次在 Path保存的这些路径中寻找相应的可执行的程序文件。系统就以第一次找到的为准;若搜寻完 Path保存的所有路径都未找到,则会显示类似于图一的错误信息。

你可能感兴趣的:(create-react-app工具创建react报错:throw er; // Unhandled 'error' event ^ Error: spawn cmd ENOENT)