仅为更深层次的路由构建应用程序后,找不到基于路由的代码拆分块

Route-based code splitting chunks are not found after building the app only for deeper routes

我正在使用 create-react-app 构建一个 React 应用程序,现在我正在努力处理其中的代码拆分。我正在使用反应加载。在开发环境中一切都很好,但是当它在一些更深的路径上构建一些块时(例如 /test/2 或 /test-a/42)没有加载,因为找不到块(404)。

这就是我使用 react-loadable 加载组件的方式

.....

const test = Loadable({
  loader: () => import("../test/test"),
  loading: Loading
});
const testdetail = Loadable({
  loader: () => import("../test/testdetail"),
  loading: Loading
});
const testa = Loadable({
  loader: () => import("../test/testa"),
  loading: Loading
});
const testadetail = Loadable({
  loader: () => import("../test/testadetail"),
  loading: Loading
});

.....

下面是我在路线中使用这些组件的方式

<Switch>
  <Route
    exact
    path="/test"
    component={test}
    />
   <Route
    path="/test/:id"
    component={testdetail}
    />
  <Route
    exact
    path="/test-a"
    component={testa}
    />
  <Route
    path="/test-a/:id"
    component={testadetail}
    />
</Switch>

正如我所说,在开发模式下一切似乎都很好,但是在我构建应用程序后,在生产模式下找不到路由 /test/:id & /test-a/:id 块。任何答案都会真正挽救我的生命,谢谢

代码似乎没问题。您是否尝试过其他库,例如“loadable-component

。您还可以使用新

升级到 CRA-2.0

React.lazy

Suspense which are also used for code splitting and many other stuffs. Check the docs. . If you are not using SSR then you can try these.