Rush Stack商店博客活动
跳至主要内容

TypeScript 插件

插件包@rushstack/heft-typescript-plugin
插件名称typescript-pluginTypeScriptPlugin.ts 实现
插件配置文件typescript.json
heft.json 选项(无)

此插件调用 TypeScript 编程语言的编译器。

何时使用它

TypeScript 是 Rush Stack 的标准编程语言。在所有编码投资中使用一种“通用语言”有很多好处,而不是为不同的语言维护不同的专业知识和库。

我们推荐将 TypeScript 用于

  • 应用程序开发:即使是原型和小型实验,它也是一个不错的选择。
  • 工具基础设施:良好的开发体验可以成倍地提高每个人的生产力,因此构建工具应该被视为具有自身设计、文档和测试的一流软件项目。
  • 设备应用程序:在可能的情况下,TypeScript 也可以通过 React Native 等运行时主机用于原生开发。
  • 桌面应用程序:对于创建桌面应用程序,也有 Electron 等运行时主机。

当然,某些组件可能不可避免地需要 Java、C++、Swift 等。但理想情况下,开发人员不应该被要求安装原生 SDK,除非他们在处理这些组件。 Expo 客户端 将此概念推向了极致,使您能够编译和运行手机应用程序,而无需安装任何原生工具。当然,这种理想情况在实践中并不总是可行。这是一种心态,而不是教条。最重要的是,标准化代码库有很大的好处,这样任何工程师都可以轻松地为任何项目做出贡献,并且任何项目都可以加载任何库。

package.json 依赖项

如果您使用的是标准 rig,例如 @rushstack/heft-node-rig@rushstack/heft-web-rig,那么 TypeScript 将已加载并配置。

否则,您需要将插件包添加到您的项目中

# If you are using Rush, run this shell command in your project folder:
rush add --package @rushstack/heft-typescript-plugin --dev

您还需要将 typescript 包添加到您的项目中

# If you are using Rush, run this shell command in your project folder:
rush add --package typescript --dev

如果您的 tsconfig.json 为更有效的转译器输出启用了 "importHelpers": true,您可能还需要一个对 tslib 的依赖

# If you are using Rush, run this shell command in your project folder:
rush add --package tslib --dev

配置

如果 rig 未提供 TypeScript,则您的 heft.json 配置文件 可以像以下示例一样调用它

<项目文件夹>/config/heft.json

{
"$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json",
. . .
"phasesByName": {
"build": {
"cleanFiles": [
{ "sourcePath": "dist" },
{ "sourcePath": "lib" },
{ "sourcePath": "lib-amd" },
{ "sourcePath": "lib-commonjs" },
{ "sourcePath": "lib-es6" }
],
"tasksByName": {
"typescript": {
"taskPlugin": {
"pluginPackage": "@rushstack/heft-typescript-plugin"
}
}
}
}
}
}

主要配置来自 TypeScript 的 tsconfig.json 文件。

对于高级场景,Heft 还支持一个可选的 config/typescript.json 配置文件,它可用于配置工具链功能,例如为 TypeScript 编译器设置多个发射目标。它还支持一个 staticAssetsToCopy 功能,用于将文件(例如 .css.json)复制到发射目标文件夹中。

另请参见