提问人:Gajus 提问时间:6/27/2023 最后编辑:Gajus 更新时间:6/27/2023 访问量:181
如何在 Rollup 摇树的背景下处理副作用?
How to handle side-effects in the context of Rollup tree-shaking?
问:
RollupJS 在这里标记了一个副作用:
renderer/Logger.ts (3:7) First side effect in renderer/Logger.ts is at (2:0)
1: import { Roarr } from "roarr";
2: export const Logger = Roarr.child({
^
3: application: "contra-web-app"
4: });
此文件包含在一堆其他文件中。
似乎由于此文件被标识为副作用,因此汇总无法合并依赖于它的其他文件(设置)。experimentalMinChunkSize
在这种情况下,我该怎么办?
Rollup 文档提到了 @__PURE__
和 @__NO_SIDE_EFFECTS__
,但文档听起来好像如果我将此代码标记为 ,它将被删除,这不是本意。@__PURE__
这意味着 Rollup 将摇树,即删除调用,除非在某些未摇树的代码中使用返回值。
除非我不明白删除是什么意思,否则我不想删除记录器——我希望记录器继续运行。
许多其他组件都有类似以下内容的文件:
// Button.tsx
import { Logger } from './Logger.ts';
const logger = Logger.child({...});
export default Button = () => {};
这是否意味着我必须转到内部组件功能?logger.child()
Button
答: 暂无答案
上一个:Python 函数的副作用
评论