0

webpack を使用して反応アプリで Promise を使用しようとしていますが、次のエラーが発生します。

'Promise' is not defined no-undef

これまでのところ、すべてうまく機能していました (babel を使用して js と jsx を変換しました) が、残念ながら Promise は機能しません。

さらに、Chrome (最新) でこのエラーが発生し、Promise はビルトイン機能でしたが.... そうですか?

これが私が使用する構成の一部です(私はサバイバルjsかんばんアプリをスターターとして使用しました。いくつかの機能を追加しようとしています)。初期設定はあまり変更しませんでした:

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)
    })
}

有効な答えはコメントにあります

4

1 に答える 1

0

私の知る限り、webpack 構成に Promise ポリフィルを含める必要があります。私が使う:

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

es6-promise は npm パッケージであり、promise が利用できない場合、または他の npm パッケージによって追加された場合に含まれます

于 2016-09-25T18:36:52.747 に答える