alibaba / alibaba/ice

路由报错

Open
#6,136 4 comments 0 reactions 0 assignees View on GitHub
bug need repro
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.
![image](https://user-images.githubusercontent.com/51156342/229482014-7122f7ca-2fbc-404b-9a44-f3e5d97b282d.png)

### 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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.