路由报错
- Dominant language
- TypeScript
- Stars
- 18.6k
- Forks
- 2.1k
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the bug
按照官网的配置,访问路由报错
PipeToResponse onShellError, downgrade to CSR.
Error: Route "login/index" has no component! Please go add a `default` export in the route module file.
### Expected behavior
PipeToResponse onShellError, downgrade to CSR.
Error: Route "login/index" has no component! Please go add a `default` export in the route module file.

### Actual behavior
PipeToResponse error.
Error: Route "login/index" has no component! Please go add a `default` export in the route module file.
If you were trying to navigate or submit to a resource route, use `` instead of `` or ``.
at RouteComponent (file:///D:/reactProject/sso-app/node_modules/@ice/runtime/esm/routes.js:126:19)
at renderWithHooks (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5724:16)
at renderIndeterminateComponent (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5797:15)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6012:7)
at renderNodeDestructiveImpl (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6170:11)
at renderNodeDestructive (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6142:14)
at renderContextProvider (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5986:3)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6083:11)
at renderNodeDestructiveImpl (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6170:11)
at renderNodeDestructive (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6142:14)
at renderContextProvider (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5986:3)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6083:11)
at renderNodeDestructiveImpl (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6170:11)
at renderNodeDestructive (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6142:14)
at renderIndeterminateComponent (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5851:7)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6012:7)
PipeToResponse onShellError, downgrade to CSR.
Error: Route "login/index" has no component! Please go add a `default` export in the route module file.
If you were trying to navigate or submit to a resource route, use `` instead of `` or ``.
at RouteComponent (file:///D:/reactProject/sso-app/node_modules/@ice/runtime/esm/routes.js:126:19)
at renderWithHooks (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5724:16)
at renderIndeterminateComponent (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5797:15)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6012:7)
at renderNodeDestructiveImpl (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6170:11)
at renderNodeDestructive (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6142:14)
at renderContextProvider (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5986:3)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6083:11)
at renderNodeDestructiveImpl (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6170:11)
at renderNodeDestructive (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6142:14)
at renderContextProvider (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5986:3)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6083:11)
at renderNodeDestructiveImpl (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6170:11)
at renderNodeDestructive (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6142:14)
at renderIndeterminateComponent (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:5851:7)
at renderElement (D:\reactProject\sso-app\node_modules\react-dom\cjs\react-dom-server.node.development.js:6012:7)
webpack 5.76.2 compiled successfully in 598 ms
webpack 5.76.2 compiled successfully in 146 ms
### Version of ice.js
3.0
### Content of build.json or ice.config.mts
```TypeScript
import { defineConfig } from '@ice/app';
// The project config, see https://v3.ice.work/docs/guide/basic/config
const minify = process.env.NODE_ENV === 'production' ? 'swc' : false;
export default defineConfig(() => ({
// Set your configs here.
minify,
server: {
onDemand: true,
format: 'esm',
},
}));
```
### Additional context
_No response_
Contributor guide
Research direction
Start at @ice/runtime/esm/routes.js:126, where RouteComponent reports that login/index has no component, and compare it with the server settings in the provided ice.config.mts. Reproduce the error on ice.js 3.0 with the login/index route and determine whether route discovery or the route module's default export is responsible. Done means the route renders during server-side rendering without the reported error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript, webpack
- Domain
- backend, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100