reactjs 使用--模板创建React应用程序类型脚本不创建.tsx文件

6jygbczu  于 2023-01-30  发布在  React
关注(0)|答案(5)|浏览(308)

我决定使用带有TypeScript的React JS。做一个简单的Hello World项目。参考两本书,他们都建议如下。全新的项目,不升级或任何那些场景。重新开始。

npx create-react-app try-react -–template typescript

那很好。
但是,文件,他们仍然有. js扩展名。在书中,其中一个有一个截图,它已经有. tsx扩展名。
我看过这个链接,https://create-react-app.dev/docs/adding-typescript/。它说,

If you've previously installed create-react-app globally via npm install -g create-react-app, we recommend you uninstall the package using npm uninstall -g create-react-app or yarn global remove create-react-app to ensure that npx always uses the latest version.

Global installs of create-react-app are no longer supported.

所以,我删除了全局安装。再试一次。
同样的事情。没有扩展名为. tsx的文件。书的作者没有提到任何关于必须手动重命名这些文件的事情。
所以,我的问题是,
1.模板不应该自动设置所有扩展名为. tsx吗?
1.唯一的方法是手动从. js更改为. tsx吗?
1.我们总是这样做吗,而且那确实是常态。也许,书的作者确实手动做了,但忘了把它包括在说明书中?

ttvkxqim

ttvkxqim1#

我也有同样的问题。解决我的方法是:
npm install cra-template-typescript
由于某种原因,模板不适合我。

2vuwiymt

2vuwiymt2#

在我的例子中,解决这个问题的方法是全局安装 typescript 模板

npm install -g cra-template-typescript

一旦我这么做了,我就跑了

npx create-react-app client-app --template typescript

Ant它工作。所有脚本文件,其中**.tsx**

bpsygsoo

bpsygsoo3#

提供一个独立的答案,因为我没有评论或编辑@ChrisPabst的答案的声誉。
我也在使用大卫Choi的书,偶然发现了这个问题,原因和我的父母一样......我无法得到模板 typescript 来生成 typescript 文件。ChrisPabst的回答让我更仔细地研究了从书中粘贴的命令和直接输入的命令之间的区别,果然,这里是从第5章粘贴的命令:
npx create-react-app class-components -–template typescript
放大模板连字符,重新粘贴到此处:
-–
现在我直接输入连字符:
--
现在,让我们重新粘贴问题文本本身的连字符:
-–
绝对看起来像第一盘,不是第二盘。
编辑:如果你得到了上面粘贴字符的ASCII值(例如,启动一个python解释器,然后为每个字符输入ord("–"),粘贴的文本将给予你
45和8211
而自己输入的是45和45。)
tl;dr:如果你使用的是大卫Choi的书“Full-Stack React,TypeScript,and Node”,那么上面所有关于cra-react-template的建议都是在转移注意力。粘贴命令,但是在你按回车键之前,返回并自己键入双连字符。一个 typescript 模板将会正确地生成。

lp0sw83n

lp0sw83n4#

为了完整起见,我相信这本书是大卫Choi的Full-Stack React,TypeScript,and Node。我也从这本书中学习React,我也遇到了这个问题。这个问题实际上不是在环境中,而是在命令本身(你可以在最初的问题中看到)。
如果您正在在线阅读这本书,并复制命令来设置一个新的React应用程序,您会得到
npx create-react-app hooks-components –template typescript
但是由于某种原因,这本书有一个非ascii破折号,而不是正确的--,所以模板arg被忽略了。
我一直错过的是这个错误。
npm ERR! arg Argument starts with non-ascii dash, this is probably invalid: –template
所以是的,它应该是有效的;不,你不需要做任何额外的事情。

t8e9dugd

t8e9dugd5#

你需要尝试两件事:

npm uninstall -g create-react-app

yarn global remove create-react-app

从今天开始应该可以了。

相关问题