2017-08-27 18 views
2

Webpackを使用してTypescript(v2.4.2)でコンパイルを行っています。すべてがうまくコンパイルされますが、IE11でコードを実行すると、次のエラーが表示されます。 'Promise'は定義されていません。ここでIE11のTypescriptと約束

は私のTSconfigです:

{ 
    "compilerOptions": { 
     "outDir": "./wwwroot/js", 
     "sourceMap": true, 
     "allowJs": true, 
     "lib": [ 
      "dom", 
      "es5", 
      "scripthost", 
      "es2015.iterable" 
     ], 
     "target": "es5", 
     "module": "commonjs", 
     "moduleResolution": "node", 
     "skipDefaultLibCheck": true, 
     "types": [ "es6-promise" ] 
    }, 
    "include": [ 
     "./Ts/**/*" 
    ] 
} 

ここに私のWebPACKの設定です:

const path = require('path'); 
const webpack = require('webpack'); 
const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); 

module.exports = { 
    entry: { 
     main: "./Ts/main.ts" 
    }, 
    output: { 
     filename: "[name].js", 
     path: path.resolve(__dirname, "wwwroot/js") 
    }, 
    devtool: "source-map", 
    resolve: { 
     extensions: [".ts", ".js"] 
    }, 
    module: { 
     rules: [ 
      { test: /\.ts?$/, loader: "awesome-typescript-loader" }, 
      { enforce: "pre", test: /\.js$/, loader: "source-map-loader" } 
     ] 
    }, 
    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
      name: 'vendor', 
      minChunks: Infinity 
     }) 
    ] 
}; 

私はポリフィルのいくつかの並べ替えが必要であることを理解し、私はそれを実現するために何かかどうかはわかりません。私がこれまで見てきたことは、PromiseやWhatwg-Fetchのような特定のポリフィルを示唆していますが、それらを追加するたびにコンパイルエラーが発生します。

答えて

2

約束IE 11でネイティブにサポートされており、これは活字体とは何の関係もありませんされていない(活字体のLIBSは、実際のコードには何も追加されません)

あなたはbluebird

約束ライブラリとして

npm install --save bluebird

を使用することができます

また、インストールの種類: npm install --save-dev @types/bluebird

import * as Promise from "bluebird"

+1

OPは、別のPromiseライブラリの代わりにpolyfillを使用することもできます。https://stackoverflow.com/questions/32408306/how-to-use-es6-promises-with-typescript – mdziekon