在macOS上使用`npx create-react-app myproj --template typescript`失败,

vdgimpew  于 5个月前  发布在  React
关注(0)|答案(7)|浏览(86)

描述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 应用程序。然而,它却是......垃圾。

实际行为

czfnxgou

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 包。

plicqrtu

plicqrtu2#

清除缓存似乎解决了问题。也许将这个小提示添加到文档中(或错误信息)是个好主意?

vwkv1x7d

vwkv1x7d3#

我应该补充一下,清除缓存解决了yarn create react-app my-project --template typescript的问题。但是npc版本仍然无法创建一个有效的项目目录。

owfi6suc

owfi6suc4#

感谢您的来信。以下是您发送的邮件内容:

Sent from Outlook for Android< [https://aka.ms/AAb9ysg](https://aka.ms/AAb9ysg) >...
________________________________ From: David G. Simmons ***@***.***> Sent: Thursday, December 22, 2022 8:48:16 PM To: facebook/create-react-app ***@***.***> Cc: Subscribed ***@***.***> Subject: Re: [facebook/create-react-app] npx create-react-app myproj --template typescript fails on macOS (Issue #12923) I should add that clearing the cache fixed this for yarn create react-app my-project --template typescript The npc version still fails to create a viable project directory. — Reply to this email directly, view it on GitHub<#12923 (comment)>, or unsubscribe< [https://github.com/notifications/unsubscribe-auth/AXQY2V7RJIT4XERXJ7T7Z73WOS5BBANCNFSM6AAAAAATFYCCRQ](https://github.com/notifications/unsubscribe-auth/AXQY2V7RJIT4XERXJ7T7Z73WOS5BBANCNFSM6AAAAAATFYCCRQ) >. You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
jobtbby3

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子目录中。

vmjh9lq9

vmjh9lq96#

是的。从yarn create-react-app更改为yarn create react-app可能是导致更改的原因。仍然失败的npx版本的命令。

bf1o4zei

bf1o4zei7#

查找npm的缓存:npm config get cache(通常在主文件夹:~/.npm)

npx.npm/_npx 子文件夹中使用自己的缓存。

rm -rf ~/.npm/_npx 将清除npx特定的缓存。

相关问题