【问题标题】:Windows 10 -> 'npx create-react-app myapp' command does not work because of whitespace username in file pathWindows 10 -> 'npx create-react-app myapp' 命令不起作用,因为文件路径中有空格用户名
【发布时间】:2019-10-12 12:51:03
【问题描述】:

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

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 线程的繁琐工作。

【问题讨论】:

    标签: reactjs windows-10 npx


    【解决方案1】:

    解决方案

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

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

    【讨论】:

    • 好的,抱歉,感谢您的反馈,下次会做得更好;)
    • 名字有多个空格怎么办?
    • 我试过这个方法但是没用,又显示Error: EPERM: operation not permitted, mkdir 'C:\Users\Firstname~1'之类的错误。
    【解决方案2】:

    如果你仍然遇到这个问题,你可以试试这个:

    我可以通过在我的用户文件夹中创建一个没有空间的目录连接来解决此问题。您可以在管理 powershell 中运行这样的命令:

    cmd /c mklink /J "C:\Users\myname" "C:\Users\My Name"

    然后您可以像使用您的真实用户目录一样使用此联结:

    npm config set cache C:\Users\myname\AppData\Roaming\npm-cache

    npm config set prefix C:\Users\myname\AppData\Roaming\npm

    (以上内容应该更新您的用户 .npmrc 文件)

    Source

    【讨论】:

    • 这是唯一对我有用的东西。谢谢!
    • 这很好用。很遗憾,这个问题早在 2019 年就一直存在。我们明白了,Node 人喜欢 Mac 和 Linux,但我们中的一些人严重使用 Windows。
    • 在 Firstname~1 不起作用的情况下,这也适用于我
    • 我也一样@Damien STEPHAN。接受的答案不起作用,但是这个答案起作用了。谢谢 Ashylen。
    【解决方案3】:

    这是我解决这个问题的方法:

    1. %APPDATA% 中删除 npm 文件夹
    2. prefixcache 都设置为不带空格的路径。 请注意,使用用户文件夹外的 prefixcache 路径可能会使您的系统面临安全风险。
        npm config set prefix F:\PathWithoutSpace\
        npm config set prefix F:\PathWithoutSpace\ --global
        npm config set cache F:\PathWithoutSpace\cache
        npm config set cache F:\PathWithoutSpace\cache --global
    
    1. 重新安装像yarncreat-react-app这样的包
    2. F:\PathWithoutSpace\ 添加到您的用户路径环境变量中,该变量已包含%APPDATA%\npm 的扩展版本,不再需要。

    我认为在安装 NodeJS 时将这些问题通知用户是值得的。

    【讨论】:

      【解决方案4】:

      我确实将节点版本更新到 16.13.2 解决了问题。

      【讨论】:

        【解决方案5】:

        更改文件夹名称中没有空格的 NPM 缓存路径。就我而言,我在 C 驱动器的根目录中使用了一个文件夹。

        npm config set cache C:\tmp\nodejs\npm-cache --global
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-11
          • 1970-01-01
          • 2022-10-15
          • 2020-06-29
          相关资源
          最近更新 更多