我正在try 部署一个使用EXPO和EXPO-ROUTER构建的Reaction原生网络应用程序到Vercel.这一过程的一部分涉及到使用webpackBundle 代码.到目前为止,我一直在使用Metro进行开发,它运行得很好.

我无法得到的项目建设使用webpack.我认为问题出在我的根级index.js文件和路由的Groups功能中.

expo 路由的文件上说有 import "expo-router/entry"; 在文件的顶部.

如果我这样做,我会得到以下错误:

Module not found: Can't resolve '..\..\app'
  10 |   typeof window === "undefined" ? React.Fragment : Head.Provider;
  11 |
> 12 | const ctx = require.context(process.env.EXPO_ROUTER_APP_ROOT);
     |            ^
  13 |
  14 | // Must be exported or Fast Refresh won't update the context
  15 | export function App() {

troubleshooting page个文档使我相信我应该用以下内容替换我的index.js文件的内容:

import { registerRootComponent } from "expo";
import { ExpoRoot } from "expo-router";

export function App() {
  const ctx = require.context("./app");
  return <ExpoRoot context={ctx} />;
}

registerRootComponent(App);

在这样做之后,我收到了几个错误

Multiple files match the route name...

This happens even with the most basic of setups.

谢谢

推荐答案

截至目前(2023年3月),世博路由不支持与webpackBundle .这就是导致我看到的错误的原因.

因此,回到默认的使用Metro作为Bundle 器和只包含import "expo-router/entry";个根级别的index.js的默认设置,以部署这个应用程序,我所做的是:

  • 在项目根目录中运行vercel cli命令以设置新项目

  • build command改为npx expo export -p web

  • 将输出目录更改为./dist

  • 将vercel.json移到项目的根目录.它应该如下所示:

    { "路由":[ {"Handle":"文件系统"}, {"src":"/(.*)","est":"/index.html"} ] }

Reactjs相关问答推荐

react 派生状态未正确更新

CreateBrowserRouter将props 传递给父组件以验证权限

使用Reaction-Hook-Form时未激发React.js onBlur事件

有没有办法在Shopify中显示自定义计算的交货日期?

梅X折线图无响应

更改滑块标记的文本 colored颜色 ./Reaction/MUI 5

状态更改是否卸载功能组件

在react上隐藏源映射

单击按钮不会切换组件(当按钮和组件位于两个单独的文件中时)

当从子状态更改复制时,react 父状态更改.我该如何防止这种情况?

无法读取未定义的属性(读取值)...TypeError:无法读取未定义的属性(读取值)

在准备回调中使用状态属性(Redux 工具包)

使用 Jest/React 测试库时,如何测试由 setInterval 函数创建的 DOM 更改?

在 redux 中分派到另一个减少时状态值不会改变

setState 改变对象引用

react 页面更新

链接的音译 Gatsby JS

在 Redux 中更新布尔状态时出错

未捕获的类型错误:无法读取未定义的属性(读取然后)?

Antd Carousel 从类组件转为函数式