developit / developit/microbundle
Why re-export overriding does not work if I use microbundle ?
- 主要语言
- 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