developit / developit/microbundle
Cannot import external es6 module correctly
- 主要語言
- 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