developit / developit/microbundle

Mixed default and named exports changes default export

未关闭
#712 16 条评论 7 个 reaction 已指派 0 人 在 GitHub 查看
enhancement :rocket: known issue
主要语言
JavaScript
星标
8.1k
派生
358
PR 合并指标
30 天内没有已合并 PR

描述

Hey everyone! I am having the following issue, if I export like this:

```javascript
import GoogleMap from './google_map';

export default GoogleMap;
```

It will build:
```javascript
module.exports = GoogleMap;
```

However, when including named exports:
```javascript
import GoogleMap from './google_map';

export { namedExport1, namedExport2 } from './named_exports;

export default GoogleMap;
```

it changes to:

```javascript
exports.namedExport1 = namedExport1;
exports.namedExport2 = namedExport2;
...
exports.default = GoogleMap;
```

Which results in the following error:

**Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.**

I am pretty sure you will ask why we do need default exports, in my case I've a library that is used by a lot of people, I switched to microbundle a bit ago and realized later on this was buggy and it won't work with SSR unless we do `module.exports`, thing is even if I want to change the way we import / export to work with microbundle, I need to provide backwards compatibility or something...

I think this might be related to #264 and #306 but I am not completely sure if that's the case.

贡献指南

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

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

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