用 Babel 去构建 TypeScript 项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 Babel 去构建 TypeScript 项目相关的知识,希望对你有一定的参考价值。
参考技术A 现在空项目中创建 package.json 文件,再去安装 Babel,@babel/core 是 babel 的核心,@babel/cli 是 Babel 的命令行,可以在终端使用 Babel 的命令行,输入 npx babel --help 查看所有的命令。接下来创建 src 目录并进入:在 src 里面新建 index.ts 文件,文件的内容为:
为了支持上面的语法需要继续安装三个插件插件和两个预设
@babel/preset-env 预设能够支持大多数 ES6 语法,少数的语法需要使用插件, @babel/preset-typescript 翻译 TS 文件的。
这时在 package.json 文件的 scripts 里面新增以下内容:
build 是 dist 的简写版本,功能是一样的,Babel 不能自己识别 .tsx和.ts 文件,所以需要 --extensions 指定文件,简写为 -x 。
还剩最后一道程序,在 package.json 同级目录下新建 babel.config.json 文件,输入以下内容:
好了,现在输入命令行进行编译:
现在我把 index.ts 的内容改为:
输入命令:
依然编译成功,所以:
现在来配置,安装 typescript:
初始化配置文件:
打开配置文件 tsconfig.json,更改 noEmit 配置项,表示 typescript 只执行类型检查不编译输出文件:
这时在命令行执行,持续监听文件的更改就行了:
类型检查配置完成。这时 Babel 负责编译,typescript 负责类型检查。
Babel 环境中 TypeScript 中的语法又四个不能使用:
现在还是推荐使用主流方式去构建 TypeScript 项目,即 webpack 的方式,使用 ts-loader 配合 typescript 实现。附赠一个技巧:
以上是关于用 Babel 去构建 TypeScript 项目的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript之间转换
@babel/typescript 在 webpack 构建时不会抛出错误
仅使用 babel 构建 typescript vue 应用程序?
为啥有些使用typescript/webpack的项目也使用babel完成编译