2015-11-15 15 views
8

Sto utilizzando VS2015 e l'ultimo TypeScript (1.6.3). I file JavaScript e mappa generati vengono generati nella codifica Windows-1252. I file TypeScript di origine sono UTF-8 con BOM. Ho bisogno che i file generati siano UTF-8 anche con BOM per poter passare la certificazione di Windows Store.Codifica file JS generato da TypeScript

Una volta risolta manualmente la codifica dei file generati, va bene. Ma poi devo includere i file generati nel controllo del codice sorgente e correggere eventuali nuovi file aggiunti.

Non sembrano esserci impostazioni per modificare la codifica. Si tratta di un bug nel compilatore?

Il tipo di progetto è jsproj, che non sembra per sostenere tsconfig.json secondo le https://github.com/Microsoft/TypeScript/issues/3124

risposta

0

Purtroppo dattiloscritto non è pienamente supportato in VS2015 nel suo stato attuale (aggiornerà questa risposta se cambia in futuro).

In alcuni tipi di progetto è possibile utilizzare tsconfig.json e il compilatore utilizzerà quindi la configurazione. Per fare ciò è necessario modificare il file di progetto e aggiungere l'elemento TypeScriptModuleKind con amd o commonjs specificato al gruppo di proprietà del file di configurazione.

Se il tipo di progetto è ad esempio jsproj, al momento non è possibile utilizzare il file di configurazione. Quindi è necessario Gulp/Grunt o semplicemente chiamare la riga di comando tsc manualmente. Oppure puoi eseguire uno script PowerShell per correggere la codifica:

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

Una volta che posso correggere manualmente la codifica dei file generati va bene. Ma poi devo includere i file generati nel controllo del codice sorgente e correggere eventuali nuovi file aggiunti.

Utilizzare le opzioni emitBOM e charset in tsconfig.json:

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

     //... other stuff 

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

Vedi schema: http://json.schemastore.org/tsconfig

+0

Basarat, grazie per la risposta. Sfortunatamente non aiuta. Il mio tipo di progetto è 'jsproj' (che ora ho aggiornato nella domanda) che non sembra supportare' tsconfig.json' (secondo https://github.com/Microsoft/TypeScript/issues/3124). C'è un modo per far funzionare la configurazione o per modificare le impostazioni del compilatore senza di essa? Inoltre non è solo che i file JS sono UTF-8 senza BOM in questo momento, sono codificati in Windows-1252 per qualche motivo. –

+0

Gestisci esternamente la compilazione usando qualcosa come grunt-ts: https://github.com/TypeStrong/grunt-ts#tsconfig – basarat

+0

Sì, questa è un'opzione. Ma è assurdo che io abbia a che fare con l'ultimo Visual Studio. Speriamo che con un prossimo aggiornamento a VS2015 il supporto per TS sarà migliore –

Problemi correlati