vs2015 update 1将打字稿编译为多个j

时间:2016-01-26 00:41:27

标签: typescript visual-studio-2015

我有一个包含多个打字稿的项目,我正在寻找一种方法将这些文件组编译成单独的JS文件。 IE:

  • 脚本\组别1 \ file1.ts
  • 脚本\组别1 \ file2.ts
  • 脚本\组2 \ file3.ts
  • 脚本\组2 \ file4.ts

编译JS(保存时)

  • 脚本\ group1.js
  • 脚本\ group2.js

我确实考虑过使用多个tsconfig.json文件但是在我的生活中我甚至无法让项目看到1个tsconfig.json文件。看起来他们也遇到了tsconfig.json和VS2015

的问题

甚至可以使用Visual Studios TypeScript编译器编译为多个JS文件?

我正在运行:VS2015更新1,TypeScript 1.7.6.0(与vs update 1一起提供),。net 4.6 web application

由于

1 个答案:

答案 0 :(得分:0)

使用npm和gulp工作。对于任何试图做类似事情的人来说:

的package.json

{
  "version": "1.0.0",
  "name": "ASP.NET",
  "private": true,
  "devDependencies": {    
    "gulp": "3.9.0",
    "gulp-typescript": "2.10.0",
    "gulp-concat": "2.6.0",
    "gulp-sourcemaps": "1.6.0"    
  }
}

gulpfile.js(生成1个文件的一部分)

var gulp = require('gulp');
var typescript = require('gulp-typescript');
var sourcemaps = require('gulp-sourcemaps');
gulp.task('compileTypeScriptFiles', function () {
  var tsResult = gulp.src(['Scripts/file1.ts', 'Scripts/file2.ts'])
    .pipe(sourcemaps.init()) // This means sourcemaps will be generated 
    .pipe(typescript({
      noImplicitAny: false,
      target: 'ES5',
      removeComments: true,
      out: 'final.js',
      preserveConstEnums: true,
      noEmitOnError: false
  }))
  .pipe(sourcemaps.write('.')) // write sourcemap to same folder
  .pipe(gulp.dest('Scripts'));
});

对于本地开发(VS 2015),在构建后将操作绑定到Task Runner Explorer。

对于TFS构建服务器,您需要:

  • 安装node.js(https://nodejs.org/en/blog/release/v0.12.0/
  • 安装rimraf。这是删除构建中的node_module文件夹所必需的,因为Windows在删除此文件夹时出现问题。打开节点cmd并运行“npm install rimraf -g”
  • 创建一个PowerShell,附加到预构建事件。

我的powershell

Param (
  [string]$path = $env:TF_BUILD_SOURCESDIRECTORY
)

cd $path

# install npm from package.json. There is a know error thrown here (actual npm warning) for outdated scripts. This error will be ignored
&npm --loglevel=error install 

# compile typescript from gulpfile.js
&node_modules\.bin\gulp compileTypeScriptFiles

# remove node modules.
&rimraf $path\node_modules

希望这有帮助