为什么我在创建 React 应用程序时出错?

IT技术 reactjs npm
2021-04-01 09:57:17

我是新手,想学习 ReactJS,我开始用npx create-react-app .命令安装一个新的空文件夹我有 npm v.6.4.1。当我尝试执行命令时,它给了我一个错误。

Error: EPERM: operation not permitted, mkdir 'C:\Users\LOGIVAR'
TypeError: Cannot read property 'get' of undefined
    at errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205:18)
    at C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js:78:20
    at cb (C:\Program Files\nodejs\node_modules\npm\lib\npm.js:228:22)
    at C:\Program Files\nodejs\node_modules\npm\lib\npm.js:266: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)
    at C:\Program Files\nodejs\node_modules\npm\node_modules\mkdirp\index.js:47:53
C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205
  if (npm.config.get('json')) {
                 ^

TypeError: Cannot read property 'get' of undefined
    at process.errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205:18)
    at process.emit (events.js:182:13)
    at process._fatalException (internal/bootstrap/node.js:485:27)
Install for create-react-app@latest failed with code 7

我已经在 Laravel 空项目上执行了相同的命令,但我仍然给我同样的错误。

你能告诉我问题的主要原因是什么以及如何解决这个问题吗?

编辑:我已经以管理员身份运行终端,但我收到另一个错误:

npm ERR! code ENOLOCAL
npm ERR! Could not install from "2\AppData\Roaming\npm-cache\_npx\10552" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\LOGIVAR TY 2\AppData\Roaming\npm-cache\_logs\2019-01-23T04_18_56_036Z-debug.log
Install for create-react-app@latest failed with code 1
6个回答

在我的情况下,实际问题是由于我的 Windows 用户名文件夹中存在空格。通过查看堆栈跟踪的第一行,这似乎也是这种情况,

Error: EPERM: operation not permitted, mkdir 'C:\Users\LOGIVAR'

由于不存在名为LOGIVAR它的尝试运行的目录mkdir,因此不允许其获取操作。

以下是我修复它的方法,感谢citoreek、g8up 和 gijwijs

运行npm config edit以编辑您的配置,这将在记事本或您配置的编辑器中打开一个文本文件,

然后cache path

; cache=C:\Users\Gijs van Dam\AppData\Roaming\npm-cache

cache=C:\Users\GIJSVA~1\AppData\Roaming\npm-cache

记住;在开始时删除,下一个问题是我们如何知道用 替换我们的用户名GIJSVA~1

有几种方法可以解决这个问题,

  1. C:\Users打开power Shell并执行以下命令

cmd /c 目录 /x

这样做的作用是,列出当前目录中的所有目录及其短名称,这些短名称不应包含任何空格,并且长度通常为 6 个字符或更少。针对您的用户名目录复制该短名称,并在您的缓存路径中使用它。

您会注意到这些短名称仅存在于包含空格或长度超过 6 个字符的目录中,对于其余目录,它们的短名称将与其目录名称相同,

  1. 如果您不想使用上述命令,则只需删除缓存路径中用户名中的所有空格,然后取用户目录名的前 6 个字符并用 ~1 后缀。你也应该大写它,但它似乎没有任何区别。

完成此文件的编辑后,保存更改,然后在关闭任何活动的 Power Shell / bash 进程并重新打开它们后重试。

就我而言,我需要用空格修改所有提到我全名的内容。
2021-06-03 09:57:17
只需更新cache上面提到in npm 配置即可为我修复它。F windows 再一次,在 Mac 上从来没有这些问题。
2021-06-13 09:57:17
这正是问题所在。永远不会想到这一点。非常感谢。
2021-06-15 09:57:17
他们真的应该在 create-react-app 入门页面上提供此类信息
2021-06-18 09:57:17
  1. 首先全局安装

    npm install -g create-react-app
    
  2. 创建您的新应用

    npx create-react-app your-app-name
    

    这对我有用

此方法将使用最新版本还是全局安装的版本?
2021-05-23 09:57:17
@sachuverma 这种方法在全球安装最新版本
2021-06-17 09:57:17

您是否尝试以管理员身份运行它?

尝试以管理员身份运行它,因为您的操作不被允许
2021-05-25 09:57:17
好吧,我应该评论这个
2021-05-28 09:57:17
我在 PhpStorm 终端上运行它。我不确定它是否以管理员身份运行
2021-05-30 09:57:17
有用。但它给了我另一个错误。我会在我的问题上编辑它
2021-06-02 09:57:17
试试这个命令:npm install -g create-react-app,我从这个命令中引用它:github.com/facebook/create-react-app/issues/4058
2021-06-16 09:57:17

在您的命令中添加这样的项目名称:

 npx create-react-app your-project-name

这是 npx 的问题。您的计算机名称中有一个空格。我建议使用 npm install -g create-react-app 来解决 npx 问题。