描述bug
运行 npx create-react-app my-project --template
时无法创建一个合适的项目。
你尝试恢复依赖项了吗?
% npm --version
9.2.0
%
没有要恢复的项目,因为这是一个新项目。以下是整个过程:
% npm uninstall -g create-react-app
up to date in 41ms
% yarn global remove create-react-app
yarn global v1.22.17
[1/2] 🗑 Removing module create-react-app...
error This module isn\'t specified in a package.json file.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.
% npx create-react-app my-project --template typescript
Creating a new React app in /Users/davidgs/github.com/my-project
Installing packages. This might take a couple minutes.
Installing react, react-dom, and react-scripts...
yarn add v1.22.17
info No lockfile found.
...
✨ Done in 34.16s.
A template was not provided. This is likely because you\'re using an outdated version of create-react-app.
Please note that global installs of create-react-app are no longer supported.
You can fix this by running npm uninstall -g create-react-app or yarn global remove create-react-app before using create-react-app again.
% ls-l my-project
total 816
drwxr-xr-x 793 davidgs staff 25376 Dec 21 10:14 node_modules
-rw-r--r-- 1 davidgs staff 198 Dec 21 10:14 package.json
-rw-r--r-- 1 davidgs staff 413630 Dec 21 10:14 yarn.lock
如您所见,create-react-app
关于全局安装版本的判断是错误的(我已经在 node_modules
目录中检查了全局安装的包,在那里没有全局安装的包)。这可能是文档中的一个问题,因为它总是说这样(这是误导性的),或者它错误地假设有一个全局安装版本,或者它找到了一个全局安装版本(在这种情况下,它应该报告找到该版本的位置)。
但最终结果是创建了一个不完整且非功能性的应用程序目录。
您在用户指南中搜索了哪些术语?
我阅读了用户指南的 this section 以及已关闭的问题 #6119(现在已关闭)。
环境
my-project % npx create-react-app --info
Please specify the project directory:
create-react-app <project-directory>
For example:
create-react-app my-react-app
Run create-react-app --help to see all options.
进一步表明 create-react-app
脚本无法创建一个合适的项目。
重现步骤
请参阅上面提供的所有命令和输出的部分。
预期行为
应该是一个完整的 React 应用程序。然而,它却是......垃圾。
7条答案
按热度按时间czfnxgou1#
很难说到底出了什么问题。我在Big Sur的Mac上无法复现这个问题。在npm 9.2.0和yarn 1.22.18上进行了测试。
不太清楚你是否想要使用npm还是yarn。
使用
npx create-react-app my-project --template typescript
意味着你想要使用npm。使用
yarn create react-app my-project --template typescript
意味着你想要使用yarn。(注意,不是yarn create-react-app my-project --template typescript
)如果你正在使用npx,请注意,当你第一次运行命令时,npx会下载并缓存该包。随后,它将不会下载最新的包,所以你可以在npx缓存中有一个较旧的副本。你应该清除npx缓存,例如
rm -rf ~/.npm/_npx
在我的Mac上可以工作。如果清除了缓存,npx应该在你第一次尝试运行时提示需要安装
create-react-app@5.0.1
包。plicqrtu2#
清除缓存似乎解决了问题。也许将这个小提示添加到文档中(或错误信息)是个好主意?
vwkv1x7d3#
我应该补充一下,清除缓存解决了
yarn create react-app my-project --template typescript
的问题。但是npc
版本仍然无法创建一个有效的项目目录。owfi6suc4#
感谢您的来信。以下是您发送的邮件内容:
jobtbby35#
我应该补充一下,清除缓存解决了
yarn create react-app my-project --template typescript
的问题。但是npc
版本仍然无法创建一个有效的项目目录。如果这是情况,那么我认为清除npx
缓存对你没有帮助。我不认为yarn
使用npx
缓存。在yarn 1.x
中的yarn create
命令等同于全局安装(或更新到最新版本),然后运行它。参见https://classic.yarnpkg.com/lang/en/docs/cli/create/。如果你运行yarn global list
,你应该看到现在应该已经安装了create-react-app
。npx
的主要问题是它不会将缓存中的任何现有包更新为最新版本。也许你可以运行npx create-react-app --version
来检查。如果npx
没有提示安装create-react-app
,那么你可以通过运行npm config get cache
来检查缓存目录,npx缓存应该位于_npx
子目录中。vmjh9lq96#
是的。从
yarn create-react-app
更改为yarn create react-app
可能是导致更改的原因。仍然失败的npx
版本的命令。bf1o4zei7#
查找npm的缓存:
npm config get cache
(通常在主文件夹:~/.npm
)npx 在
.npm/_npx
子文件夹中使用自己的缓存。rm -rf ~/.npm/_npx
将清除npx特定的缓存。