developit / developit/microbundle

Why re-export overriding does not work if I use microbundle ?

未关闭
#782 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug :bug: help wanted :wave: upstream
主要语言
JavaScript
星标
8.1k
派生
358
PR 合并指标
30 天内没有已合并 PR

描述

Hi guys,

I have run into some really weird situation here. Here is some [demo code](https://github.com/qjnz/re-export-override-demo) here, which does not use `microbundle` in that project.

What I am trying to do is like the following:
```js
import { theFunction } from './myOverrides'

export * from 'some-library'
export { theFunction } // theFunction here should override the theFunction from the `some-library`
```

However, from the emitted umd.js or common.js file that I got from `microbundle`, the `theFunction` does not get override since I can see that the legacy javascript code I got from the output is doing something like below

```js
Object.keys(r).forEach(function (e) {
'default' !== e &&
Object.defineProperty(exports, e, {
enumerable: !0,
get: function () {
return r[e]
},
})
}),
```

which the latter export `export { theFunction }` does not override it.

My question is that if somehow the `microbundle` does some magic here about `export * from 'some-library'`.

贡献指南

这个仓库没有索引到贡献指南

调研方向

从链接的 re-export-override-demo 开始,然后运行其 microbundle build,并检查生成的 UMD 和 CommonJS 文件中与使用 Object.keys(r) 处理导出相关的部分。将生成的行为与所示的导出顺序进行比较,并确定 override 是否应按预期工作。行为得到解释,并且已修正或明确记录后,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
javascript
领域
build-system
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。