2016-09-25 145 views
0

我想使用的WebPack使用無極的反應,應用程序,但我有這樣的錯誤:用法/反應應用

'Promise' is not defined no-undef

到目前爲止,一切都運行良好(使用巴貝爾翻譯js和jsx),但不幸的是Promise不起作用。

此外,我有鉻(最新)這個錯誤,我雖然承諾buildin功能....我是嗎?

這是我使用的一個配置(我使用survivejs看板應用作爲啓動器,我嘗試添加一些功能)。我並沒有太大變化的初始配置:

從網絡pack.config.js

module: { 
     loaders: [ 
     { 
      test: /\.(js|jsx)$/, 
      // Enable caching for extra performance 
      loaders: ['babel?cacheDirectory'], 
      include: include 
     } 
     ] 
} 

從.babelrc

{ 
    "presets": [ 
    "es2015", 
    "react" 
    ], 
    "env": { 
    "start": { 
     "presets": [ 
     "react-hmre" 
     ] 
    } 
    } 
} 

失敗代碼:

const locales = { 
    en:() => require('react-intl?locale=en!./en.json'), 
    fr:() => require('react-intl?locale=fr!./fr.json') 
} 

function loadLocaleData (locale) { 
    return new Promise((resolve) => { 
     locales[locale]()(resolve) 
    }) 
} 

有效答案在評論中

+0

我們可以看到你所說的承諾的代碼添加? – EQuimper

+0

爲了得到承諾,你應該做的例子'const promise = new Promise((resolve resolve)=> {你的東西在這裏})' – EQuimper

+0

添加失敗的代碼。看起來很接近你的建議。我也嘗試過一個功能,也沒有工作。 – vespasien

回答

0

據我所知,您需要在您的webpack配置中包含一個Promise polyfill。我使用:

plugins: [ 
    new webpack.ProvidePlugin({ 
     'Promise': 'exports?global.Promise!es6-promise' 
    }) 
], 

凡ES6-承諾是NPM包,這將是包括在沒有承諾提供或通過任何其他NPM包