当我在我的终端上输入create-react-app my-app命令时,它似乎工作了-下载所有库成功等。在该过程结束时,我得到一个消息,没有提供模板。
输入
user@users-MacBook-Pro-2 Desktop% create-react-app my-app
输出
Creating a new React app in /Users/user/Desktop/my-app.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...
..... nothing out of the ordinary here .....
✨ Done in 27.28s.
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.
在包中。my-app的Json:
"dependencies": {
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-scripts": "3.3.0" <-- up-to-date
}
我检查了CRA更改日志,它看起来像是增加了对自定义模板的支持-但是它看起来不像命令create-react-app my-app会改变。
知道这是怎么回事吗?
把以上的答案加起来:
随着新版本的create-react-app,您可以使用自定义模板创建一个新的应用程序。
目前有两个模板可用:
cra-template
cra-template-typescript
用法:
npx create-react-app my-app [--template typescript]
更多关于create-react-app的最新变化:
https://github.com/facebook/create-react-app/releases/tag/v3.3.0
1)
npm uninstall -g create-react-app
or
yarn global remove create-react-app
2)
似乎有一个错误,create-react-app没有正确卸载,使用其中一个新命令导致:
没有提供模板。这可能是因为您正在使用
过时版本的创建-反应-应用程序。
在使用npm uninstall -g create-react-app卸载后,检查你的命令行上是否仍然“安装”了create-react-app (Windows: where create-react-app)。如果它返回一些东西(例如/usr/local/bin/create-react-app),然后执行rm -rf /usr/local/bin/create-react-app手动删除。
3)
下面是其中一种方法:
npx create-react-app my-app
npm init react-app my-app
yarn create react-app my-app
先清空你的npm缓存,然后使用yarn,如下所示:
NPM缓存清理——force
NPM缓存验证
Yarn创建my-app
我希望这能有所帮助。
EDIT
...在我进一步研究了这个问题之后,你可能想尝试以下方法:
NPM卸载-g create-react-app
Yarn全局删除create-react-app
which create-react-app -如果它返回一些东西(例如/usr/local/bin/create-react-app),然后执行rm -rf /usr/local/bin/create-react-app手动删除。
NPM缓存清理——force
NPM缓存验证
npx create-react-app@latest
These steps should remove globally installed create-react-app installs, you then manually remove the old directories linked to the old globally installed create-react-app scripts. It's then a good idea to clear your npm cache to ensure your not using any old cached versions of create-react-app. Lastly create a new reactjs app with the @latest option like so: npx create-react-app@latest. There has been much confusion on this issue where no template is created when using npx create-react-app, if you follow the steps I have stated above (1-6) then I hope you'll have success.
p.s.
如果我想在一个叫client的目录中创建一个react应用程序,那么我会在终端中输入以下命令:
NPX create-react-app@latest ./client
祝你好运。
虽然这里已经有很多答案了。
当我面对这种情况时,我想出了3个解决方案。
第一步:从官方手册,
如果你之前已经通过npm install -g create-react-app全局安装了create-react-app,我们建议你使用npm uninstall -g create-react-app卸载这个包,以确保npx总是使用最新的版本。
https://create-react-app.dev/docs/getting-started
你可以使用下面这些命令:
create-react-app my-app
NPM init react-app my-app
Yarn创建my-app
第二步(如果第一步不管用):
有时它可能会保存缓存。然后您可以使用下面给出的这些命令。
NPM卸载-g create-react-app
NPM缓存清理——force
NPM缓存验证
Yarn创建my-app
第三步:(如果这两步都不行)
首先通过NPM uninstall -g create-react-app卸载,然后检查你的命令行上的create-react-app命令是否“安装”了它。如果你得到(/usr/local/bin/create-react-app)这样的文件,那么运行rm -rf /usr/local/bin/create-react-app(文件夹可能不同)手动删除。
然后再次通过npx/npm/yarn安装它。
NB:最后一步我成功了。
首先卸载create-react-app
npm uninstall -g create-react-app
然后运行yarn create react-app my-app或npx create-react-app my-app
然后运行yarn create react-app my-app或NPX create-react-app my-app可能仍然会给出错误,
没有提供模板。这可能是因为您使用的是过时版本的create-react-app。请注意,不再支持create-react-app的全局安装。
这可能是因为现金的原因。所以下一组
npm cache clean --force
然后运行
npm cache verify
现在一切都清楚了。现在运行
Yarn create react-app my-app或NPX create-react-app my-app
现在你会得到你想要的!
TLDR:使用npm Uninstall -g create-react-app卸载全局包,并使用npx create-react-app app生成新的react应用。
问题
你正在使用一个旧版本的create-react-app,你已经用npm全局安装了。create-react-app命令调用这个全局包。
你可以通过运行npm expired -g create-react-app或比较create-react-app——version与npm view create-react-app来确认你使用的是一个过时的版本。
react-scripts的版本是最新的,这一事实与引导应用程序的包的版本(create-react-app)无关,后者抓取了它使用的包的最新版本(在本例中是react-scripts)。
解决方案
如果你想继续使用create-react-app命令,你需要使用npm update -g create-react-app更新全局包。请注意,您需要定期这样做以保持更新。你会注意到create-react-app不建议这样做(在安装日志中有记录)。
一个更好的方法是完全删除全局安装(npm uninstall -g create-react-app),而是使用npx,以便它每次都抓取包的最新版本(关于npx的详细信息如下)。
您应该通过尝试使用create-react-app来确保命令“未找到”来确认它已全局卸载。
卸载有问题吗?
你可以使用create-react-app调试它的安装位置。如果你在卸载它时遇到问题,你的机器上可能有多个版本的node/npm(来自多个安装,或者因为你使用了节点版本管理器,如nvm)。这是一个单独的问题,我不会在这里解决,但在这个答案中有一些信息。
一个快速的核心方法是在create-react-app返回的路径上强制删除它(rm -rf)。
补充
全局npm包和npx命令
$ NPM_PACKAGE_NAME将始终使用包的全局安装版本,无论您在哪个目录中。
$ npx NPM_PACKAGE_NAME将使用它从当前目录搜索到根目录时找到的包的第一个版本:
如果您的当前目录中有这个包,它将使用它。
否则,如果包在当前目录的父目录中,它将使用它找到的第一个目录。
否则,如果你全局安装了这个包,它就会使用它。
否则,如果你根本没有这个包,它会临时安装它,使用它,然后丢弃它。-这是确保包装是最新的最好方法。
更多关于npx的信息可以在这个答案中找到。
使用npx和create-react-app
create-react-app有一些特殊的命令/别名来创建一个特定于该包的react应用程序(而不是npx) (yarn create react-app, NPM init react-app),但npx create-react-app的工作方式与其他包相同。
Yarn vs NPM全局安装
Yarn将全局安装包存储在与npm不同的文件夹中,这就是为什么Yarn create react-app可以在不卸载全局npm包的情况下立即工作(就Yarn而言,这个包还没有安装)。
这只是一个临时的解决方案,因为你需要记住在使用Create React App时总是使用yarn而不是npm。
这对我很有效
1.第一次全局卸载create-react-app:
npm uninstall -g create-react-app
如果你还有以前的安装,请删除文件夹叫我的应用程序完全。(确保没有程序正在使用该文件夹,包括您的终端或cmd提示符)
2.然后在你的项目目录中:
npm install create-react-app@latest
3.最终:
npx create-react-app my-app
我上周也遇到了同样的问题。我尝试了答案部分提供的许多方法。但现在情况不同了。这个create-react-app的最新版本提供了2个模板。
1. cra-template
2. cra-template-typescript
如果使用javascript,请选择cra-template。如果你使用typescript,请使用cra-template-typescript。
首先,你必须卸载create-react-app。(如果您有最新版本,请忽略此步骤。)
npm uninstall -g create-react-app
再次安装最新版本的create-react-app
npm install create-react-app@latest
现在您必须像这样导入模板。(如果你使用typescript,请使用"cra-template-typescript"而不是"cra-template"。My-app用作名称。你可以给它起任何名字)。
npx create-react-app my-app --template cra-template
现在将下载模板。但请记住,这并不等于过去的版本。(不同的)
快乐的编码。
出现此问题是因为不再支持create-react-app的全局安装。为了解决这个问题,你应该从你的系统中卸载并完全删除create-react-app,所以分别运行这些命令:
npm uninstall -g create-react-app
or
yarn global remove create-react-app
然后用这个命令检查create-react-app是否存在
which create-react-app
如果它返回任何正确的路径,比如
/c/Users/Dell/AppData/Local/Yarn/bin/create-react-app
然后执行该命令全局删除create-react-app
rm -rf /c/Users/Dell/AppData/Local/Yarn/bin/create-react-app
现在你可以用下面的命令创建一个新的react应用程序:
npx create-react-app my-app
npm init react-app my-app
yarn create react-app my-app