2015-11-15 4 views
8

Ich verwende VS2015 und neuesten TypeScript (1.6.3). Die generierten JavaScript- und Map-Dateien werden in Windows-1252-Codierung generiert. Die Quell-TypeScript-Dateien sind UTF-8 mit BOM. Ich brauche die generierten Dateien auch UTF-8 mit BOM, um die Windows Store-Zertifizierung zu bestehen.TypeScript generiert JS-Dateien codieren

Sobald ich manuell Codierung der generierten Dateien reparieren, ist es in Ordnung. Aber dann muss ich die generierten Dateien in die Quellcodeverwaltung einbeziehen und neu hinzugefügte Dateien korrigieren.

Es scheint keine Einstellungen zum Ändern der Codierung zu geben. Ist das ein Fehler im Compiler?

Der Projekttyp ist jsproj, die nicht tsconfig.json nach https://github.com/Microsoft/TypeScript/issues/3124

Antwort

0

Leider ist Typoskript nicht vollständig in VS2015 unterstützt in seinem aktuellen Zustand (wird diese Antwort aktualisieren, wenn es ändert sich in der Zukunft).

In einigen Projekttypen können Sie tsconfig.json verwenden und der Compiler wird dann die Konfiguration verwenden. Dazu müssen Sie Ihre Projektdatei bearbeiten und das Element TypeScriptModuleKind mit amd oder commonjs der Eigenschaftsgruppe der Konfigurationsdatei hinzufügen.

Wenn Ihr Projekttyp beispielsweise jsproj ist, gibt es momentan keine Möglichkeit, die Konfigurationsdatei zu verwenden. Dann musst du Gulp/Grunt oder einfach tsc manuell per Kommandozeile aufrufen. Oder Sie können ein Powershell-Skript ausführen, um die Codierung zu korrigieren:

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

zu unterstützen scheint Sobald ich manuell Codierung der generierten Dateien reparieren es ist in Ordnung. Aber dann muss ich die generierten Dateien in die Quellcodeverwaltung einbeziehen und neu hinzugefügte Dateien korrigieren.

Verwenden Sie die emitBOM und charset Optionen in tsconfig.json:

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

     //... other stuff 

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

Siehe Schema: http://json.schemastore.org/tsconfig

+0

Basarat, danke für Ihre Antwort. Leider hilft es nicht. Mein Projekttyp ist 'jsproj' (den ich jetzt in der Frage aktualisiert habe), der' tsconfig.json' nicht zu unterstützen scheint (gemäß https://github.com/Microsoft/TypeScript/issues/3124). Gibt es eine Möglichkeit, entweder die Konfiguration zu machen oder die Einstellungen des Compilers zu ändern? Außerdem sind die JS-Dateien nicht nur UTF-8 ohne BOM, sondern aus irgendeinem Grund in Windows-1252 kodiert. –

+0

Verwalten Sie die Kompilierung extern mit etwas wie grunt-ts: https://github.com/TypeStrong/grunt-ts#tsconfig – basarat

+0

Ja, das ist eine Option. Aber es ist absurd, dass ich mit dem neuesten Visual Studio zu tun habe. Hoffentlich wird mit einem nächsten Update auf VS2015 die Unterstützung für TS besser sein –