Visual Studio 2015 CTP 6 - 将 Typescript 输出合并到单个 .js 文件中

Visual Studio 2015 CTP 6 - Combining Typescript output into single .js file

TypeScript 编译器支持使用以下方法将所有输出发送到单个文件: tsc --out filename.js

在 Visual Studio 2013 中,您可以将这些选项发送到项目属性/TypeScript 构建/输出/合并 JavaScript 输出到文件中的编译器:。

新的 'K' 项目属性似乎没有此选项。是否可以更改 .kproj 文件来执行此操作?

我想避免为此使用 Grunt。

感谢您的帮助!

一开始我对使用 G运行t 有点犹豫,当你习惯 Visual Studio 为你做所有事情时,这似乎是一种倒退。虽然我猜他们不得不放弃对所有东西使用 Visual Studio 因为 ASP.NET 5 将是跨平台的并且不依赖于 Visual Studio.

如果您设置了 G运行t 或 Gulp 任务,您仍然会在错误列表中看到错误。它刚刚来自 Visual Studio.

我用的是grunt-typescript to compile and output the JavaScript to one file. I also had to install typescript本身。通过 packages.json 文件安装它们后,您必须将类似的内容添加到 gruntfile.js

typescript: {
    base: {
      src: ['path/to/typescript/files/**/*.ts'],
      dest: 'where/you/want/your/js/file.js',
      options: {
        module: 'amd', //or commonjs 
      }
    }
  }

grunt.loadNpmTasks("grunt-typescript");

我最终将 src 指向我的 TypeScript 参考文件。

然后您可以通过 Visual Studio Task Runner Explorer 在 post 构建中将其获取到 运行。虽然更好的是在所有 TypeScript 文件上设置一个 watch 任务以开始构建,它内置于 g运行t-typescript 但我使用 grunt-contrib-watch 来完成它,因为我也在看Sass 个文件...等等。我使用了 watch 任务,因为您不再需要使用 ASP.NET 5.

手动构建项目

另外如果没试过TSD,看看能找到并下载定义文件真是太好了。使用它比使用 NuGet 获得它们感觉更好,就像对于 JavaScript 库来说,bower 似乎比 NuGet 更好。

我找到了一种不使用 Grunt 或 Gulp 的方法。在您的 Web 应用程序的属性中,在构建选项卡下,您必须 select "Produce outputs on build"。这似乎允许您将项目添加到 project.json 文件中的脚本。然后我添加了

"prebuild": "tsc /typescript/reference/file.ts --out /output.js"

虽然这样做我认为构建过程会变慢,因为它正在创建 NuGet 包。

我还通过卸载项目并编辑 .kproj 使其工作

  <PropertyGroup>
    <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
    <TypeScriptOutFile>output.js</TypeScriptOutFile>
  </PropertyGroup>

添加后保存时编译输出到一个文件。虽然我确信这两种方法都不是推荐的方法,而且后一种方法将来可能甚至行不通...