visual studio 打字稿文件的个别设置

visual studio individual settings for typescript file

在我的 visual studio 项目属性中,我启用了复选框 "Combine JavaScript output into file"。 我可以从此输出中排除一些打字稿文件吗?我想将这个(排除的)文件编译成单独的 js 文件。

很遗憾,您不能通过 VS 项目和 .ts 文件设置来完成。

您可以使用 grunt task runner 扩展(在 article 中描述)+ grunt-typescript 插件来自定义 TypeScript 构建任务,"gruntfile.js" 示例内容:

grunt.initConfig({
    typescript: {
        buildmodules: {
            src: ['modules/*.ts'],
            dest: 'bin/modules.js',
            options: {
                module: 'amd', //or commonjs
                target: 'es5', //or es3
                basePath: 'path/to/typescript/files',
                sourceMap: true,
                declaration: true
            }
        },
        tests: {
            src: ['Tests/*.ts'],
            dest: 'bin/tests.js',
            options: {
                module: 'amd', //or commonjs
                target: 'es5', //or es3
                basePath: 'path/to/typescript/files',
                sourceMap: true,
                declaration: true
            }
        }
    }
});

grunt.loadNpmTasks("grunt-typescript");

您还可以使用 Web Essentials 扩展来捆绑由 TSC 生成的单独的 .js 文件。

我的解决方案是修改 csproj:

  1. 更改文件目标来自
 <TypeScriptCompile Include="file.ts" />

 <CustomTypeScriptCompile Include="file.ts" /> 
  1. 添加"CustomTypeScriptCompile"目标:
    <PropertyGroup>
    <CustomCompileTsFiles>@(CustomTypeScriptCompile->'%(FullPath)')</CustomCompileTsFiles>
    <SplitedCompileTsFiles>$(CustomCompileTsFiles.Replace(';', ' '))</SplitedCompileTsFiles>
    </PropertyGroup>

    <Target Name="CustomTypeScriptCompile" BeforeTargets="Build">
    <Exec Command="tsc $(SplitedCompileTsFiles) --sourcemap -t ES5" />
    </Target>