简介 SSShort Introduction
尽管 Typescript 是一门优秀的语言,但是作为 JavaScript 的超集,主流的 Typescript 开发的目标运行环境 浏览器端 / Node.js 端 原生并不支持 Typescript。因此想要应用 Typescript,往往要使用 tsc 进行编译,将代码编译为 js 后才能运行。然而因为历史问题,JS 具有繁杂的模块系统,相应的 tsc 针对不同的模块系统有眼花缭乱的配置项。虽然目前主流是往 ESM 靠拢,但在不恰当的配置项与不同的运行环境下,使用 ESM 经常会遇到奇怪的模块导入问题。
因此,在过去的两个月里,我司根据自己的开发体验,逐渐整出了这一套简单的工程模板。它具有以下特性:
-
ESM Module Support 。
-
支持 Typescript 以及相应模块系统的合法配置(有一些开源项目的配置并不符合 tsc 配置)。
-
VSCode Support。支持通过 VSCode 直接进行 Debug。
-
使用 tsx 作为 executor。
-
整合了 babel 将项目编译为 js (附带相应类型定义 d.ts 文件)输出部署,因此也适合 Node Package/ Nodejs Appication 的开发。
-
支持例如 ‘@’ 的路径别名配置;使用 Jest 作为测试框架。
故而,如果你只是单纯想用 Typescript 写些小玩意,想使用 ESM Modules,并且平常习惯使用 VSCode 进行开发的话,可以尝试使用这个工程模板。
如何使用
1.如果你是想在 Github 上使用它
前往仓库项目地址 github.com/HK-Artifici…,通过右方的 Use this template 新建你的项目:
在克隆到本地后,运行 npm install 安装相应依赖后,便可以通过编辑 src/index.ts 进行你的开发。
2. 如果你是想在本地使用
克隆项目到本地:github.com/HK-Artifici…
运行 运行 npm install 安装相应依赖后,便可以通过编辑 src/index.ts 进行你的开发。
其他 About
虽然 Nodejs 将在后续的版本里引入TS运行支持: github.com/nodejs/node…。但它在运行前不会进行类型检查,而且在长期版本里会是实验性质,所以我个人不是很看好。
因为我司积累浅薄,加上工期繁忙,加上项目会拆分成多个微服务,从而使得一个项目一般由一个人维护,所以现在没有用 ESLint 等进行强制规范。现在开源出来了估计后面也只会在内部用。所以没有做相应的配置。
之所以写这篇博文是因为我自己觉得还挺好用的,分享出来一下。