我试图在使用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)
})
}
有效的答案在评论中
答案 0 :(得分:0)
据我所知,您需要在webpack配置中包含Promise polyfill。我用:
plugins: [
new webpack.ProvidePlugin({
'Promise': 'exports?global.Promise!es6-promise'
})
],
其中es6-promise是一个npm包,当没有承诺或任何其他npm包添加时,它将被包含