TypeScript 插件
插件包 | @rushstack/heft-typescript-plugin |
插件名称 | typescript-plugin 由 TypeScriptPlugin.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 将已加载并配置。
否则,您需要将插件包添加到您的项目中
- Rush
- NPM
# If you are using Rush, run this shell command in your project folder:
rush add --package @rushstack/heft-typescript-plugin --dev
# If you are using vanilla NPM, run this shell command in your project folder:
npm install @rushstack/heft-typescript-plugin --save-dev
您还需要将 typescript
包添加到您的项目中
- Rush
- NPM
# If you are using Rush, run this shell command in your project folder:
rush add --package typescript --dev
# If you are using vanilla NPM, run this shell command in your project folder:
npm install typescript --save-dev
如果您的 tsconfig.json 为更有效的转译器输出启用了 "importHelpers": true
,您可能还需要一个对 tslib 的依赖
- Rush
- NPM
# If you are using Rush, run this shell command in your project folder:
rush add --package tslib --dev
# Or if you are using vanilla NPM, run this shell command in your project folder:
npm install tslib --save-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
)复制到发射目标文件夹中。
另请参见
- config/typescript.json 用于 Heft 的配置文件
- tsconfig.json 参考