相关疑难解决方法(0)

Typescript编译器忘记为ES6模块导入添加文件扩展名?

我正在尝试使用ES6模块解析将一个Typescript项目编译为JS,但似乎有些不对劲.

我的tsconfig.json看起来像这样:

{
    "compilerOptions": {
    "module": "es6",
    "target": "es6",
    "sourceMap": true,
    "lib": ["es6"]
  }
}
Run Code Online (Sandbox Code Playgroud)

我用两个模块构建了一个简单的测试用例.第一个模块(module1.ts)只导出一个常量:

export const testText = "It works!";
Run Code Online (Sandbox Code Playgroud)

第二个模块(main.ts)只是从第一个模块导入导出:

import { testText } from 'module1';
alert(testText);
Run Code Online (Sandbox Code Playgroud)

第二个模块(main.js)的输出文件包含在我的index.html中,带有type="module"-Attribute:

<script src="main.js" type="module"></script>
Run Code Online (Sandbox Code Playgroud)

当我使用Firefox(dom.moduleScripts.enabled在about:config中设置)和Chrome Canary(实验Web平台标志设置)进行测试时.在这两种情况下它都不起作用.

Typescript编译器似乎将TS import { testText } from 'module1';语句转换为JS语句import { testText } from 'module1';.(注意:两者完全一样)

正确的ES6 import语句将是:( import { testText } from 'module1.js'; 注意.js文件扩展名)如果我手动将文件扩展名添加到生成的代码中,它就可以工作.

我做错了什么或者Typescript "module": "es6"设置不正常吗?有没有办法以这样的方式配置tsc:.js文件扩展名被添加到生成的import语句中?

javascript typescript ecmascript-6 es6-modules

10
推荐指数
2
解决办法
1129
查看次数