我是新手,想学习 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
Run Code Online (Sandbox Code Playgroud)
我已经在 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
Run Code Online (Sandbox Code Playgroud)
Sai*_*aif 28
在我的情况下,实际问题是由于我的 Windows 用户名文件夹中存在空格。通过查看堆栈跟踪的第一行,这似乎也是这种情况,
Error: EPERM: operation not permitted, mkdir 'C:\Users\LOGIVAR'
Run Code Online (Sandbox Code Playgroud)
由于不存在名为LOGIVAR它的尝试运行的目录mkdir,因此不允许其获取操作。
以下是我修复它的方法,感谢citoreek、g8up 和 gijwijs
运行npm config edit以编辑您的配置,这将在记事本或您配置的编辑器中打开一个文本文件,
然后cache path从
; cache=C:\Users\Gijs van Dam\AppData\Roaming\npm-cache
Run Code Online (Sandbox Code Playgroud)
到
cache=C:\Users\GIJSVA~1\AppData\Roaming\npm-cache
Run Code Online (Sandbox Code Playgroud)
记住;在开始时删除,下一个问题是我们如何知道用 替换我们的用户名GIJSVA~1?
有几种方法可以解决这个问题,
C:\Users打开power Shell并执行以下命令cmd /c 目录 /x
这样做是,列出当前目录中的所有目录及其短名称,这些短名称不应包含任何空格,并且长度通常为 6 个字符或更少。针对您的用户名目录复制该短名称并在您的缓存路径中使用它。
您会注意到这些短名称仅存在于包含空格或长度超过 6 个字符的目录中,对于其余目录,它们的短名称将与其目录名称相同,
完成编辑此文件后,保存更改,然后在关闭任何活动的 Power Shell/bash 进程并重新打开它们后重试。
小智 25
首先全局安装
npm install -g create-react-app
Run Code Online (Sandbox Code Playgroud)创建您的新应用
npx create-react-app your-app-name
Run Code Online (Sandbox Code Playgroud)
这对我有用
您是否尝试以管理员身份运行它?
| 归档时间: |
|
| 查看次数: |
16718 次 |
| 最近记录: |