Babel
安裝
shnpm install @babel/cli @babel/core @babel/preset-typescript --save-dev
.babelrc
js{"presets": ["@babel/preset-typescript"]}
使用命令列介面
sh./node_modules/.bin/babel --out-file bundle.js src/index.ts
package.json
js{"scripts": {"build": "babel --out-file bundle.js main.ts"},}
從命令列執行 Babel
shnpm run build
Browserify
安裝
shnpm install tsify
使用命令列介面
shbrowserify main.ts -p [ tsify --noImplicitAny ] > bundle.js
使用 API
jsvar browserify = require("browserify");var tsify = require("tsify");browserify().add("main.ts").plugin("tsify", { noImplicitAny: true }).bundle().pipe(process.stdout);
更多詳情: smrq/tsify
Grunt
使用 grunt-ts (不再維護)
安裝
shnpm install grunt-ts --save-dev
基礎 Gruntfile.js
jsmodule.exports = function (grunt) {grunt.initConfig({ts: {default: {src: ["**/*.ts", "!node_modules/**/*.ts"],},},});grunt.loadNpmTasks("grunt-ts");grunt.registerTask("default", ["ts"]);};
更多詳情: TypeStrong/grunt-ts
結合 tsify 使用 grunt-browserify
安裝
shnpm install grunt-browserify tsify --save-dev
基礎 Gruntfile.js
jsmodule.exports = function (grunt) {grunt.initConfig({browserify: {all: {src: "src/main.ts",dest: "dist/main.js",options: {plugin: ["tsify"],},},},});grunt.loadNpmTasks("grunt-browserify");grunt.registerTask("default", ["browserify"]);};
更多詳情: jmreidy/grunt-browserify, TypeStrong/tsify
Gulp
安裝
shnpm install gulp-typescript
基礎 gulpfile.js
jsvar gulp = require("gulp");var ts = require("gulp-typescript");gulp.task("default", function () {var tsResult = gulp.src("src/*.ts").pipe(ts({noImplicitAny: true,out: "output.js",}));return tsResult.js.pipe(gulp.dest("built/local"));});
更多詳情: ivogabe/gulp-typescript
Jspm
安裝
shnpm install -g jspm@beta
注意:目前 jspm 對 TypeScript 的支援處於 0.16beta 版本
更多詳情: TypeScriptSamples/jspm
MSBuild
更新專案檔案,以包含本地安裝的 Microsoft.TypeScript.Default.props (在頂部) 和 Microsoft.TypeScript.targets (在底部) 檔案
xml<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><!-- Include default props at the top --><ImportProject="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props"Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" /><!-- TypeScript configurations go here --><PropertyGroup Condition="'$(Configuration)' == 'Debug'"><TypeScriptRemoveComments>false</TypeScriptRemoveComments><TypeScriptSourceMap>true</TypeScriptSourceMap></PropertyGroup><PropertyGroup Condition="'$(Configuration)' == 'Release'"><TypeScriptRemoveComments>true</TypeScriptRemoveComments><TypeScriptSourceMap>false</TypeScriptSourceMap></PropertyGroup><!-- Include default targets at the bottom --><ImportProject="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets"Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" /></Project>
關於定義 MSBuild 編譯器選項的更多詳情: 在 MSBuild 專案中設定編譯器選項
NuGet
- 右鍵點選 -> 管理 NuGet 程式包
- 搜尋
Microsoft.TypeScript.MSBuild - 點選
安裝 - 安裝完成後,重新構建!
更多詳情請訪問 程式包管理器對話方塊 和 在 MSBuild 中使用每日構建版 NuGet
Rollup
安裝
npm install @rollup/plugin-typescript --save-dev
注意:typescript 和 tslib 都是此外掛的對等依賴(peer dependency),需要單獨安裝。
用法
建立一個 rollup.config.js 配置檔案 並匯入該外掛
js// rollup.config.jsimport typescript from '@rollup/plugin-typescript';export default {input: 'src/index.ts',output: {dir: 'output',format: 'cjs'},plugins: [typescript()]};
Svelte 編譯器
安裝
npm install --save-dev svelte-preprocess
注意:typescript 是此外掛的可選對等依賴,需要單獨安裝。tslib 也沒有提供。
您也可以考慮使用 svelte-check 進行 CLI 型別檢查。
用法
建立一個 svelte.config.js 配置檔案並匯入該外掛
js// svelte.config.jsimport preprocess from 'svelte-preprocess';const config = {// Consult https://github.com/sveltejs/svelte-preprocess// for more information about preprocessorspreprocess: preprocess()};export default config;
您現在可以指定 script 塊使用 TypeScript 編寫
<script lang="ts">
Vite
Vite 支援開箱即用地匯入 .ts 檔案。它只執行轉譯,不進行型別檢查。它還要求某些 compilerOptions 具有特定值。詳情請參閱 Vite 文件。
Webpack
安裝
shnpm install ts-loader --save-dev
使用 Webpack 5 或 4 時的基礎 webpack.config.js
jsconst path = require('path');module.exports = {entry: './src/index.ts',module: {rules: [{test: /\.tsx?$/,use: 'ts-loader',exclude: /node_modules/,},],},resolve: {extensions: ['.tsx', '.ts', '.js'],},output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist'),},};
請參閱 ts-loader 的更多詳情。
替代方案