🔧 路径含有空格导致npx报错,解决方案

548 阅读1分钟

问题描述及解决过程:

路径含有空格导致npx报错(这是之前写的,一直没发出来)

报错描述:

npx create-react-app 创建react脚手架时,出现一系列错误

image-20201130224029260.png

解决过程:
  1. 由于Node配置的cache的路径含有空格。并且,每次都会创建一个名为Program的空文件夹。

  2. 修改cache路径

    npm config set prefix "D:\Program~1\nodejs\node_global"
    npm config set cache "D:\Program~1\nodejs\node_cache"
    
  3. 修改完成后,npx create-react-app 可以运行,不报错。但是,会在D:\创建新的文件夹

D:\Program~1

  1. 通过命令行输入dir /x,可以查看当前路径下文件的8.3短文件名

image-20201130224048093.png

  1. 说明当前系统并不支持短文件名,所以新建的文件夹都没有自带8.3短文件名

  2. 使用fsutil file setshortname "D:\Program Files" PROGRA~1 修改短文件名,报错:拒绝访问。可能是由于文件夹本身的权限问题或者是里面有软件运行的路径(尝试修改当前用户对于该文件夹的权限,失败)。

image-20201130224156021.png

  1. shift+开始菜单中的重启按钮 进入安全模式,重复上述指令,修改成功。

image-20201130224218053.png

Windows 关闭、开启短文件名功能:
  1. Win + R 打开命令行,输入regedit打开注册表

  2. 找到路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

  3. 修改NtfsDisable8dot3NameCreation变量值,默认是2,0是开启,1是关闭

image-20201130224306416.png

  1. 开启时,创建的新的文件及文件夹都会有8.3短文件名(系统盘默认开启该功能,还是自己分盘的时候的锅)