Async 中的代码无法移除
- Dominant language
- TypeScript
- Stars
- 18.6k
- Forks
- 2.1k
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the bug
如下代码
```ts
async function getData() {
if (process.env.ICE_CORE_SSR === 'true') {
await new Promise((resolve) => {
setTimeout(() => resolve(null), 3000);
});
console.log('aaaa');
return fakeData;
} else {
console.log('bbbb');
return fakeData;
}
}
```
将 process.env.ICE_CORE_SSR 设置为 fasle,进行构建后(Client 端产物),未移除 Server 端的相关逻辑
### Expected behavior
移除了 Server 端的相关逻辑, 只保留 Client 端逻辑
```ts
async function getData() {
console.log('bbbb');
return fakeData;
}
```
### Actual behavior
实际构建产物为:

### Version of ice.js
3
### Content of build.json or ice.config.mts
_No response_
### Additional context
补充说明:
* 非 async 函数,代码正常移除
* async 函数的条件判断,不存在 await 逻辑,代码移除正常
目前的解法是:
* 将 Server 端 和 Client 端实现分别定义为两个函数,将条件判断前置
Contributor guide
Assessment
This issue has not been assessed yet.