在 TypeScript 中使用 Babel:教程

阅读时长 5 分钟读完

在 TypeScript 中使用 Babel:教程

随着前端技术的迅猛发展,看似简单的页面开发变得越来越复杂,这也导致了项目代码量的急剧增加。为了保证开发效率和代码质量,typescript(简称 TS)成为了一个备受欢迎的选择。但是 TS 对于一些常用库的支持不太完善,而 Babel 可以提供更好的 ES6+ 语法转译功能。那么在 TS 中怎样与 Babel 集成呢?下面是一个详细的教程。

本教程使用的环境:Node.js 14+

安装所需的依赖

我们需要安装以下依赖,其中 @babel/cli @babel/core是 Babel 的核心库,用以命令行操作和编译。@babel/preset-typescript 则是用来让 Babel 将 TypeScript 编译成 ES5+ 语法。

修改 .babelrc 文件

创建或修改 .babelrc 文件,将以下内容复制到文件中:

这里只使用了 @babel/preset-typescript 这一个预设(preset),如果你需要用到其他的预设,可以在这个数组里添加。

使用 Babel 转译 TypeScript 文件

在 package.json 中添加一个 script:

这个脚本将会把 src 目录下的所有 .ts 文件编译成 ES5+ 语法,并将结果输出到 dist 目录。当我们执行 npm run build 时,Babel 会开始编译所有 .ts 文件。

调整 TypeScript 配置

在这里,我们需要让 TypeScript 发现新的输出目录。修改 tsconfig.json 文件,添加一个 outDir 属性,设置成刚刚用来输出的目录(这里是 dist):

-- -------------------- ---- -------
-
  ------------------ -
    --------- -------
    --------- ------
    --------- -----------
    ------------------ -----
    ------------ ----
  -
-

这个配置文件还有其他一些常用配置,这里不再详细说明。

调整 eslint 配置

有些人可能在项目中使用了 eslint (VSCode 等代码编辑器默认情况下都会使用),如果你想在项目中使用 eslint,请添加以下配置。

首先安装所需的 eslint-plugin-import 和 @typescript-eslint/parser (用于解析 TypeScript 语法),并在 .eslintrc 中添加以下配置:

-- -------------------- ---- -------
-
  ---------- -----------
  --------- ----------------------------
  ---------------- -
    ------------- ---------
    -------------- ----
  --
  -------- -
    ----------------------- -------
  -
-

这里只添加了一个 import/no-unresolved 的规则,用于检查导入的模块是否存在或者正确导入。你可以添加其他规则,或者使用自己的配置,具体可以参考 eslint 官方文档。

调整 webpack 配置

有些人可能在项目中使用了 webpack,如果你想在项目中使用 webpack,请添加以下配置。

首先安装所需的 @babel/preset-env 和 babel-loader。在 webpack.config.js 中添加以下配置:

-- -------------------- ---- -------
-------------- - -
  ------- -
    ------ -
      -
        ----- ----------
        ---- -
          -
            ------- ---------------
            -------- -
              -------- -
                -
                  --------------------
                  -
                    -------- ----- - --------- -- ----
                    -------- -----
                  -
                --
                --------------------------
              -
            -
          -
        -
      -
    -
  -
-

这个配置可以编译 .ts 和 .tsx 文件。首先使用了 @babel/preset-env 将 ES6+ 语法转译成 ES5+ 语法。@babel/preset-env 可以通过传递参数配置编译目标,这里的配置是编译最近 2 个浏览器版本以及 IE11,同时关闭模块转换。在这里加入了 @babel/preset-typescript,可以让 Babel 编译 TypeScript 文件。

总结

本教程详细讲解了在 TypeScript 中使用 Babel 的方法,并给出了在不同项目模板中的配置。还可以根据实际情况来添加其他的配置和规则,从而定制出自己需要的 TypeScript + Babel 集成方案。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645731f7968c7c53b09ffc6f

纠错
反馈