Javascript 为带有裸ES模块的浏览器编译带有TypeScript的模块
我正在尝试将TypeScript代码编译成JavaScript,以便在Javascript 为带有裸ES模块的浏览器编译带有TypeScript的模块,javascript,html,typescript,Javascript,Html,Typescript,我正在尝试将TypeScript代码编译成JavaScript,以便在index.html中使用它,如下所示 <script type="module"> import('./dist/base.js').then(module => { const instance = new module.MyClass(); ... } </script> 它就像一个符咒。然而,我的情况是一个复杂的问题,我有两个问题 它都是用
index.html
中使用它,如下所示
<script type="module">
import('./dist/base.js').then(module => {
const instance = new module.MyClass();
...
}
</script>
它就像一个符咒。然而,我的情况是一个复杂的问题,我有两个问题
tsc
时,它会产生以下输出
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class MyClass {}
exports.default = MyClass;
下面是我对tsconfig.json
"compilerOptions": {
"target": "ESNEXT",
"module": "commonjs",
"lib": ["es2015", "dom"],
"outDir": "./dist",
"strict": true,
"moduleResolution": "node"
}
但是我尝试了更多的target
s和module
s
<强>问题2)< /强>:忽略问题1)考虑下面的
import { magic } from 'magic';
export MyClass {
doMagic() { return magic() }
}
它编译为
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const magic_1 = require("magic");
class MyClass {
doMagic() { magic_1() }
}
exports.default = MyClass
浏览器无法解析require(“magic”)
。我认为tsc
应该内联该脚本,我不知道,但这不会起作用
因此,也许我在
tsconfig.json
中的一个或多个tsc
选项上做错了什么,或者我还需要其他工具(babel/webpack)。任何帮助都将不胜感激 你看过了吗?我觉得你提到的帖子是关于导入文件的文件扩展名的(我必须说这也很有趣!)
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const magic_1 = require("magic");
class MyClass {
doMagic() { magic_1() }
}
exports.default = MyClass