TypeScript 构建工具
构建工具是帮助将我们的源代码转换和捆绑成一个单一文件的编程工具。构建工具实用程序用于构建程序的新版本。构建意味着将代码编译、链接和打包成可执行形式。
构建工具通常在命令行上运行,或者在IDE中运行,或者与IDE完全分离。
构建工具或构建自动化是指脚本化或自动化开发人员在日常活动中进行的各种任务。这些任务包括:
- 下载依赖项。
- 编译源代码为二进制代码。
- 打包二进制代码。
- 运行测试。
- 部署到生产系统。
使用构建工具
在小项目中,软件开发人员手动调用构建过程,这对于大型项目来说并不是一个好的实践。这是因为,在大型项目中,很难追踪需要构建什么、以何种顺序构建以及构建过程中的依赖关系。因此,我们使用自动化工具使构建过程更加一致。
一些可以与TypeScript集成的标准构建工具包括:
- Browserify
- Duo
- Grunt
- Gulp
- Jspm
- Webpack

1. Browserify
使用 Browserify 插件 Tsify 编译 TypeScript 文件。
安装
使用以下命令安装 Tsify :
$npm install Tsify
使用命令行界面
通过使用以下命令,编译您的代码,并将结果保存在一个名为 bundle.js 的文件中。
browserify main.ts -p [ tsify --noImplicitAny ] > bundle.js
使用API
var browserify = require("browserify");
var tsify = require("tsify");
browserify()
    .add("main.ts")
    .plugin("tsify", { noImplicitAny: true })
    .bundle()
    .pipe(process.stdout);
2. Duo
安装
通过使用下面的命令安装 Duo插件
$npm install duo-typescript
使用命令行界面
通过使用以下命令,编译你的代码,并将结果保存在名为 entry.ts 的文件中。
$duo --use duo-typescript entry.ts
使用API
var Duo = require("duo");
var fs = require("fs")
var path = require("path")
var typescript = require("duo-typescript");
var out = path.join(__dirname, "output.js")
Duo(__dirname)
    .entry("entry.ts")
    .use(typescript())
    .run(function (err, results) {
        if (err) throw err;
        // Write compiled result to output file
        fs.writeFileSync(out, results.code);
    });
3. Grunt
使用Grunt的grunt-ts插件来编译TypeScript文件。
安装
通过以下命令安装 grunt-ts
$npm install grunt-ts
现在,你需要在你的项目中包含Grunt 配置文件 ,文件名为 gruntfile.js 。
module.exports = function(grunt) {
    grunt.initConfig({
        ts: {
            default: {
                src: ["**/*.ts", "!node_modules/**/*.ts"]
            }
        }
    });
    grunt.loadNpmTasks("grunt-ts");
    grunt.registerTask("default", ["ts"]);
};
4. Gulp
使用 gulp-typescript 插件编译 TypeScript 文件。
安装
使用以下命令安装 gulp-typescript 插件:
$npm install gulp-typescript
现在,您需要在您的项目中包含名为 gulpfile.js 的 Gulp配置 文件。
var 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"));
});
5. Jspm
使用 jspm插件 编译TypeScript文件。
安装
使用以下命令 安装jspm :
$npm install -g jspm@beta
注意:当前jspm中对TypeScript的支持在 0.16beta 阶段
6. Webpack
使用 ts-loader 插件来编译TypeScript文件。
安装
使用以下命令安装 webpack :
$npm install ts-loader --save-dev
现在,您需要在项目中包含Webpack 配置文件 ,文件名为 webpack.config.js 。
module.exports = {
    entry: "./src/index.tsx",
    output: {
        filename: "bundle.js"
    },
    resolve: {
        // Add '.ts' and '.tsx' as a resolvable extension.
        extensions: ["", ".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
    },
    module: {
        loaders: [
            // all files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'
            { test: /\.tsx?$/, loader: "ts-loader" }
        ]
    }
}
 极客笔记
极客笔记