Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
6
rated 0 times [  12] [ 6]  / answers: 1 / hits: 87692  / 7 Years ago, wed, march 1, 2017, 12:00:00

I am converting React code to typescript,
target in tsconfig is es5.



on running in IE 11 i get an error Promise is undefined



I know i need to polyfill,but how?



I am not using Babel.



Following is my Webpack.config



var webpack = require(webpack);
var Promise = require('es6-promise').Promise;
var paths = require('./config/paths');
var HtmlWebpackPlugin = require('html-webpack-plugin');
//var InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin');
var AureliaWebpackPlugin = require('aurelia-webpack-plugin');

var publicPath = '/';
var publicUrl = '';

module.exports = {
entry: {

app: [
'core-js/fn/promise',

'./Generated Files/app.js'
],
vendor: paths.vendorPath,
},
output: {
path:__dirname + /dist,
filename: 'bundle.js',
publicPath: publicPath
},
devtool: '#source-map',
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
},
module: {
loaders: [
{
test: /.tsx?$/,
loader: 'ts-loader',
exclude: /node_modules/
},
{
test: /.css$/,
loader: 'style-loader!css-loader',
//exclude: /node_modules/,
},
{
test: /.(ico|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2)(?.*)?$/,
loader: 'file',
query: {
name: 'static/media/[name].[hash:8].[ext]'
}
},
]
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('development')
}
}),
new HtmlWebpackPlugin({
inject: true,
template: paths.appHtml,
}),

// For using jQuery
new webpack.ProvidePlugin({
$: jquery,
jQuery: jquery,
'window.jQuery': 'jquery',
'window.$': 'jquery',
}),

new webpack.ProvidePlugin({
Promise: promise-polyfill
}),
// new AureliaWebpackPlugin(),
new webpack.optimize.CommonsChunkPlugin({/* chunkName= */name:vendor, /* filename= */filename:'static/js/vendor.js'})
]
};

More From » reactjs

 Answers
60
var ES6Promise = require(es6-promise);
ES6Promise.polyfill();
var axios = require(axios);


writing this above axios worked for me
maybe other options also worked



it was mainly a cache issue in IE that i was facing



installing es6-promise-promise webpack plugin also worked



npm install es6-promise-promise


and include



new webpack.ProvidePlugin({
Promise: 'es6-promise-promise', // works as expected
});


in webpack plugins



i will edit this answer with more possible options


[#58717] Tuesday, February 28, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
collinisaaka

Total Points: 194
Total Questions: 105
Total Answers: 104

Location: Tonga
Member since Tue, Nov 30, 2021
3 Years ago
;