Encoding TypeScript生成的JS文件编码

Encoding TypeScript生成的JS文件编码,encoding,typescript,visual-studio-2015,Encoding,Typescript,Visual Studio 2015,我正在使用VS2015和最新的TypeScript(1.6.3)。生成的JavaScript和映射文件以Windows-1252编码生成。源TypeScript文件是带BOM的UTF-8。 我确实需要生成的文件是UTF-8与BOM表,以及为了通过Windows商店认证 一旦我手动修复了生成文件的编码,就可以了。但是,我必须在源代码管理中包含生成的文件,并修复任何新添加的文件 似乎没有任何更改编码的设置。 这是编译器中的错误吗 项目类型是jsproj,根据 一旦我手动修复了生成文件的编码,就可以了

我正在使用VS2015和最新的TypeScript(1.6.3)。生成的JavaScript和映射文件以Windows-1252编码生成。源TypeScript文件是带BOM的UTF-8。 我确实需要生成的文件是UTF-8与BOM表,以及为了通过Windows商店认证

一旦我手动修复了生成文件的编码,就可以了。但是,我必须在源代码管理中包含生成的文件,并修复任何新添加的文件

似乎没有任何更改编码的设置。 这是编译器中的错误吗

项目类型是
jsproj
,根据

一旦我手动修复了生成文件的编码,就可以了。但是,我必须在源代码管理中包含生成的文件,并修复任何新添加的文件

使用tsconfig.json中的
emitBOM
charset
选项:

{
    "compileOnSave": true,
    "compilerOptions": {

        //... other stuff

        "emitBOM": true,
        "charset": "utf8"
    },
    // ...
}

请参阅架构:

不幸的是,VS2015当前状态下不完全支持TypeScript(如果将来发生更改,将更新此答案)

在某些项目类型中,您可以使用
tsconfig.json
,然后编译器将使用配置。为此,您需要编辑项目文件并添加元素
TypeScriptModuleKind
,并将
amd
commonjs
指定给配置文件的属性组

如果您的项目类型是例如
jsproj
,那么目前无法使用配置文件。然后您必须吞咽/咕噜,或者只是从命令行手动调用
tsc
。或者,您可以运行Powershell脚本来修复编码:

(Get-ChildItem ".\" -Recurse -Include ('*.js', '*.js.map')) | Foreach-Object { (Get-Content $_.FullName) | Set-Content -Encoding UTF8 $_.FullName }

巴萨拉特,谢谢你的回答。不幸的是,这没有帮助。我的项目类型是
jsproj
(我现在在问题中更新了它),它似乎不支持
tsconfig.json
(根据)。有没有一种方法可以使配置工作,或者在没有它的情况下更改编译器设置?此外,现在不仅JS文件是UTF-8,没有BOM表,出于某种原因,它们在Windows-1252中编码。使用grunt ts之类的外部工具管理编译:是的,这是一个选项。但我不得不使用最新的VisualStudio是荒谬的。希望随着VS2015的下一次更新,对TS的支持会更好