react框架,npx create-react-app my-app显示无法找到cache缓存中的package.json文件进行安装解决方案
因为自己需要,笔电需要安装两个版本的node,所以用了nvm来管理node的版本。今天抽空开始学习react的框架,刚起步,就报错了orz。
出错如下:
日志内容如下:
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'G:\\Users\\CXM\\AppData\\Roaming\\nvm\\v14.16.0\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'install',
1 verbose cli 'create-react-app@latest',
1 verbose cli '--global',
1 verbose cli '--prefix',
1 verbose cli 'G:\\Program',
1 verbose cli 'Files\\nodejs\\node_cache\\_npx\\20344',
1 verbose cli '--loglevel',
1 verbose cli 'error',
1 verbose cli '--json'
1 verbose cli ]
2 info using npm@6.14.11
3 info using node@v14.16.0
4 verbose npm-session 63f496c656981e09
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 silly fetchPackageMetaData error for file:Files\nodejs\node_cache\_npx\20344 Could not install from "Files\nodejs\node_cache\_npx\20344" as it does not contain a package.json file.
8 http fetch GET 200 https://registry.npmjs.org/create-react-app 878ms
9 http fetch GET 200 https://registry.npmjs.org/create-react-app/-/create-react-app-5.0.0.tgz 238ms
10 silly pacote tag manifest for create-react-app@latest fetched in 1131ms
11 timing stage:rollbackFailedOptional Completed in 0ms
12 timing stage:runTopLevelLifecycles Completed in 1139ms
13 verbose stack Error: ENOENT: no such file or directory, open 'D:\Self-Study\React\code\test\Files\nodejs\node_cache\_npx\20344\package.json'
14 verbose cwd D:\Self-Study\React\code\test
15 verbose Windows_NT 10.0.22000
16 verbose argv "C:\\Program Files\\nodejs\\node.exe" "G:\\Users\\CXM\\AppData\\Roaming\\nvm\\v14.16.0\\node_modules\\npm\\bin\\npm-cli.js" "install" "create-react-app@latest" "--global" "--prefix" "G:\\Program" "Files\\nodejs\\node_cache\\_npx\\20344" "--loglevel" "error" "--json"
17 verbose node v14.16.0
18 verbose npm v6.14.11
19 error code ENOLOCAL
20 error Could not install from "Files\nodejs\node_cache\_npx\20344" as it does not contain a package.json file.
21 verbose exit [ 1, true ]
控制台的报错和日志都表示关键字眼在Files\nodejs\node_cache\_npx\20344
没有数据安装。
我的电脑没有这个文件目录,网上查了一下,是说我的npm路径有空白字符所影响。
然后我查了一下我的npm的cache路径。
// 查看当前的npm配置的cache路径
npm config get cache
// 能够显示当前的npm的cache完整的路径:
G:\Program Files\nodejs\node_cache
突然想起我以前安装过node没卸载,就安装了nvm,也许要切换到自己的这个nvm对应的node版本的下才可能成功。
再根据上面的报错日志显示是从C盘下,而不是从G盘下读取的node.exe。
之后我就在系统环境变量中找到的nvm的路径。
最后找到C盘下的node.exe对应的路径修改终于解决了这个问题。
完整步骤如下:
一、高级系统配置–>环境变量–>管理员的系统变量–>Path变量【我看到了以下两个路径】
这里看到配置了以上两个路径,第一个是nvm的路径,但是我们要找到nvm切换版本之后,生成的nodejs的路径,我检查了一下"C:\Program Files\nodejs"
这个路径,发现它就是nvm生成的一个快捷方式【我刚才切node的版本到14.16.0,对应的目录正确】,如图所示:
可以确定第二个路径是接下来要配置的npm对应的配置config路径,即:C:\Program Files\nodejs
二、使用命令行查看,并修改本地的npm的config文件的配置路径
// cmd命令行窗口,输入以下命令行,回车,能编辑 npm的config文件:.npmrc【会弹窗该文件出来】
npm config edit
// 找到以下两行 这是我原来配置的npm的路径目录
cache=G:\Program Files\nodejs\node_cache
prefix=G:\Program Files\nodejs\node_global
// 我只需把G盘改成C盘之后保存就可以,看到这里的人,要找到自己的nvm目录路径的切换才可以,如下:
// 修改,保存,关闭.npmrc即可
cache=C:\Program Files\nodejs\node_cache
prefix=C:\Program Files\nodejs\node_global
最后,执行安装npx create-react-app my-app
命令成功。