首页 > 解决方案 > Windows 10 -> 'npx create-react-app myapp' 命令不起作用,因为文件路径中有空格用户名

问题描述

当我尝试在我的 Windows 10 上安装 react 应用程序时遇到了一些问题npx create-react-app appname,收到以下错误消息:

Error: EPERM: operation not permitted, mkdir 'C:\Users\Daniel'
TypeError: Cannot read property 'loaded' of undefined
    at exit (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:98:27)
    at errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:216:3)
    at C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js:77:20
    at cb (C:\Program Files\nodejs\node_modules\npm\lib\npm.js:225:22)
    at C:\Program Files\nodejs\node_modules\npm\lib\npm.js:263:24
    at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:83:7
    at Array.forEach (<anonymous>)
    at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:82:13
    at f (C:\Program Files\nodejs\node_modules\npm\node_modules\once\once.js:25:25)
    at afterExtras (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:173:20)
C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:98
  var doExit = npm.config.loaded ? npm.config.get('_exit') : true
                          ^

TypeError: Cannot read property 'loaded' of undefined
    at exit (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:98:27)
    at process.errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:216:3)
    at process.emit (events.js:198:13)
    at process._fatalException (internal/bootstrap/node.js:496:27)
Install for create-react-app@latest failed with code 7

解决方案

我开始了一些研究,最后发现,如果您的 Windows 用户名包含空格,例如“C:\Users\Firstname Lastname\AppData\Roaming\npm-cache”,就会出现此问题

经过几个小时的循环运行并在这个问题上重新阅读多个 GitHub 线程后,我终于找到了一个对我有用的补丁:npm config set cache "C:\Users\Firstname~1\AppData\Roaming\npm-cache" --global从你的终端运行,它将用 ~1 替换空格和后面的所有内容,这似乎解决了这个问题

我发现这个解决方案的来源是https://github.com/zkat/npx/issues/146#issuecomment-384019497

我在此处发布此评论是为了节省任何人处理大量循环链接的 github 线程的苦差事。

标签: reactjswindows-10npx

解决方案


解决方案

如果要使用用户名中有空格的当前路径,"C:\Users\Firstname Lastname\AppData\Roaming\npm-cache" 可以将空格后的字符串替换为"~1"

npm config set cache "C:\Users\Firstname~1\AppData\Roaming\npm-cache" --global


推荐阅读