alibaba / alibaba/ice

Async 中的代码无法移除

Open
#5,963 1 comment 0 reactions 1 assignee Claimed by @chenjun1011 View on GitHub
bug
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

实际构建产物为:
image

### Version of ice.js

3

### Content of build.json or ice.config.mts

_No response_

### Additional context

补充说明:
* 非 async 函数,代码正常移除
* async 函数的条件判断,不存在 await 逻辑,代码移除正常

目前的解法是:
* 将 Server 端 和 Client 端实现分别定义为两个函数,将条件判断前置

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.