developit / developit/microbundle

Cannot import external es6 module correctly

未關閉
#881 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
JavaScript
星號
8.1k
分支
358
PR 合併指標
30 天內沒有已合併 PR

描述

I have a typescript project, the ts files are stored in different directories, they all import the same external module, like this:

/main.ts:

```
import * as ext from 'external';
import { g } from './lib/foo';
function f() {
g();
ext.func1();
}
```

/lib/foo.ts:

```
import * as ext from 'external';
function g() {
ext.func2();
}
```

I want to package main.ts into an ES6 module and store it in the same directory as external.js
After packaging, I expected to get this result:

main.js:

```
import * as ext from './external.js";
// blah blah
```

My packaging script looks like this:

```
microbundle -i main.ts --no-pkg-main -f modern --target web -o dist/main.js --external .*/external.js --alias external=./external.js

```

But I got this result:

```
import * as ext$1 from './external.js';
import * as ext from './lib/external.js';
```

I think this should be because the two ts files are in different directories and aliases are used, but what should be the correct way?

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

使用 main.ts、lib/foo.ts 和外部模組重現打包命令,然後檢查 dist/main.js。比較每個原始碼匯入的解析方式,並驗證對 external 的兩個參照都會產生預期的共用 ./external.js 匯入。當產生的 ES6 模組包含預期的外部匯入,且沒有錯誤的 lib/external.js 路徑時,這個 issue 就完成了。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
javascript, typescript
領域
build-system, tooling
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。