在webpack / react应用程序中使用Promise

时间:2016-09-25 17:39:50

标签: reactjs webpack promise babeljs survivejs

我试图在使用webpack的反应应用中使用Promise,但我有这个错误:

'Promise' is not defined no-undef

到目前为止,一切运行良好(使用babel翻译js和jsx)但遗憾的是Promise不起作用。

此外,我在Chrome中有这个错误(最新),虽然Promise是buildin功能....我是对的吗?

这是我使用的一个配置(我使用survivaljs kanban app作为启动器,我试图添加一些功能)。我没有改变初始配置:

来自web 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)
    })
}

有效的答案在评论中

1 个答案:

答案 0 :(得分:0)

据我所知,您需要在webpack配置中包含Promise polyfill。我用:

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

其中es6-promise是一个npm包,当没有承诺或任何其他npm包添加时,它将被包含