2016-07-21 5 views
0

nodejs/koaプロジェクトでtypescriptを使用するように移行しています。 .tsconfigをes6を対象にするように変更する必要があることが判明しました。それ以外の場合は、ジェネレータはECMAScript 6以降をターゲットにしている場合にのみ利用できます。それはES6のために動作しますが、私はnodejsランタイムカバーES6の機能が十分にあれば心配をしていますがnodejs/koaのTypescriptは、ES6をターゲットにするのは安全ですか?

// index.ts 
let koa = require('koa'); 
let app = koa(); 
export {app}; 

app.use(function *(){ 
    return yield this.body = 'Hello World'; 
}); 

app.listen(3090); 

// .tsconfig 
{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es5", // I have to switch to es6 to pass 
     "noImplicitAny": false, 
     "sourceMap": true, 
     "outDir": "./dist" 
    }, 
    "exclude": [ 
     "node_modules", 
     "dist" 
    ] 
} 

(私はカバレッジ率を言われた96%のものです)。私はなぜtypescriptがtranspilerなので、私はes5をターゲットできないのだろうと思っています、それはbabelのように約束するためにジェネレータをコンパイルできるはずですか?

ところで、私はすでに幸運なことなくes6-shimタイピングをインストールしようとしました。

答えて

2

私はES5をターゲットにすることはできませんなぜ私はtypescriptですがtranspilerであるから、バベルのよう約束する発電機をコンパイルすることができるはず、疑問に思って彼らはEMITをrewrittingの過程にある

をしましたTypeScriptの一部でpluginsをbabelと同じように使用する:https://github.com/Microsoft/TypeScript/issues/5595まだ完全には書かれていないコードです。

nodejsランタイムがes6の機能を完全にカバーしているかどうか心配です(カバレッジ率は96%と言われました)。

この時点で、NodeJSの場合はこれを行うのが安全です! https://kangax.github.io/compat-table/es6/(サーバーランタイム/ノード6列)を参照してください

+0

優れている、プラグインの機能を待つことはできません、ちょうどロードマップをチェックし、2.1になります。さらに、nodejのカバレッジは93%ですが、何とか注意する必要があります。ちなみに、typescriptとnodejについてのベストプラクティスのリンクをお勧めしますか? – Ron

+0

devモードの場合、es6を対象とすることができます。プロダクションIMOでは、typescriptをes6にコンパイルし、最後にbabel-nodeを使用して安全のためにes5を構築することができます。 – Ron

関連する問題