如何从 preact-cli 添加 react-router 到 preact app

How to add react-router to preact app from preact-cli

我使用 preact-cli 创建了一个 Preact 应用程序,需要将 react-router-dom 添加到我的项目中以进行路由。如何在不弹出应用程序的情况下将 react-router 添加到项目中,以便安装路由器库?

我看到了添加 webpack 的选项,但这需要退出应用程序。

我在项目中将 "preact-compat": "^3.19.0", 添加到我的 package.json,但不确定如何添加 webpack 或导入必要的 react-router 导入:

import {BrowserRouter as Router, Route, Switch, NavLink} from 'react-router-dom';

but that' requires ejecting the app

无法从 preact-cli 中“弹出”。那不是存在的功能,所以我对你指的是什么感到有点困惑。

我们通过 your preact.config.js 向您提供整个配置。有了这个,你可以配置你想要的 Webpack 配置的任何部分,而且只能配置那些位。您不需要像 CRA 的弹出那样执行任何操作,您现在必须自己拥有整个配置。您可以编辑您想要的部分,而将其他所有内容都放在网站之外和脑海中。

I've seen options for adding webpack

preact-cli 使用 Webpack 进行打包,它是最基本的底层工具。没有Webpack就没法用,所以这个意义不大。

I added "preact-compat": "^3.19.0"

删除这个。 preact-cli 已经从正确的来源添加了兼容性。

如果您阅读 the docs for preact-compat,您会发现它仅适用于 Preact 8.x 和之前的版本,目前已经过时几年了。 v10+ 的正确兼容包是 preact/compat。不过,我们已经在 preact-cli 中为您设置好了,所以您无需自己做任何事情。


为什么你认为你需要做任何配置只是为了导入库?您是否 运行 遇到任何错误,或者可能是 confusing/misworded 的文档?只是 运行 v6 的测试,在您将它换成 preact-router 后应该开箱即用(假设您已经使用我们的模板之一设置了一个 preact-cli 项目)

能够通过导入 import {BrowserRouter as Router, Route, Switch, NavLink} from 'react-router-dom';yarn build 然后 yarn-serve

来实现这一点