Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Cannot import external es6 module correctly

未关闭
#881 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

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

调研方向

使用 main.ts、lib/foo.ts 和外部模块重现打包命令,然后检查 dist/main.js。比较每个源代码导入的解析方式,并验证对 external 的两个引用都会生成预期的共享 ./external.js 导入。当生成的 ES6 模块包含预期的外部导入,且没有错误的 lib/external.js 路径时,该 issue 就完成了。

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

描述

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?

主要语言
JavaScript
星标
8.1k
派生
358
PR 合并指标
30 天内没有已合并 PR

贡献指南

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

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

developit/microbundle 的其他 Issue

查看 developit/microbundle 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

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