gpt4 book ai didi

typescript - 如何在没有模块加载系统的情况下将我的 Typescript 编译成单个 JS 文件?

转载 作者:搜寻专家 更新时间:2023-10-30 20:36:08 24 4
gpt4 key购买 nike

我有一个大约 10 个 ts 文件的小型 Typescript 项目。我想将所有文件编译成 es5 并编译成一个名为 all.jses5 文件。

目前,我的 tsconfig.json 设置为

{
"compilerOptions": {
"module": "system",
"target": "es5",
"outFile": "./all.js"
}

一切都在编译,但每个文件都被

System.register("SomeTSFile", [], function(exports_4, context_4) {
...
}

SystemJS 看起来很酷,但我现在没有心情学习它,我认为没有必要。如果我可以将我所有的 JS 放入一个文件中,那将完全满足我的需要。

如果我从我的编译器选项中删除 "module": "system",,我的 all.js 文件将完全空白。显然,这是因为出于某种原因,you cannot use "modules": none when outputting to one file . (我不明白为什么)

如何在不涉及 SystemJS 或任何其他复杂情况的情况下将所有 TS 编译成一个 JS 文件?

最佳答案

.ts 文件的内容决定了这是否可能...

如果您避免将您的 TypeScript 代码变成一个模块(通过避免顶级 importexport 声明),单文件编译的输出将不包含任何依赖项在模块加载器上。

例如:typescript compiler itself编写时没有任何顶级导入或导出声明,因此编译成单个文件 .js 没有任何加载程序依赖性。

请注意,它在命名空间中使用 export 不是“顶级”导出。命名空间内的导入是可能的,但受到严格限制:an example here

"In TypeScript, just as in ECMAScript 2015, any file containing a top-level import or export is considered a module."

The typescript handbook

关于typescript - 如何在没有模块加载系统的情况下将我的 Typescript 编译成单个 JS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39360465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com