解决vuex requires a Promise polyfill in this browser问题

造成这种现象的原因归根究底就是浏览器对ES6中的promise无法支持,因此需要通过引入babel-polyfill来是我们的浏览器正常使用es6的功能

首先通过npm来安装:

 npm install babel-polyfill --save-dev

接下来就是根据场景来引入

目前本喵遇到的出现这种错误的场景有两种:

1.在使用vue-cli搭建的unit测试时(npm run unit),因为测试时启动的浏览器不是我们常用的chrome,而是PhantomJs。为了能让其像chrome一样正常运转,需要在kara.confi.js中设置其在启动我们程序的入口文件前,先启动polyfill.js,配置部分如下:

files: [‘../../node_modules/babel-polyfill/dist/polyfill.js‘,‘./index.js‘],

  

2.在ie下运行时,也会出现同样的报错,解决方式类似,不过这次是在webpack.base.conf.js中配置::

ps:这里在网上看到过三种配置方案:

         第一种:

entry: {
app: ["babel-polyfill","./src/main.js"]
}        

         第二种:

entry: {
app: "./src/main.js",
"babel-polyfill":"babel-polyfill"
}

第三种:在main.js中全局import babel-polyfill

最后使用直接引入node_modules中的js文件路径,最终成功,代码如下:

entry: {
app: [‘./node_modules/babel-polyfill/dist/polyfill.js‘,‘./src/main.js‘]
},

  

原文链接:http://blog.csdn.net/u013034014/article/details/77775902

原文地址:https://www.cnblogs.com/karila/p/8405585.html

时间: 2024-08-29 09:15:25

解决vuex requires a Promise polyfill in this browser问题的相关文章

vue npm run unit Error: [vuex] vuex requires a Promise polyfill in this browser.

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR Error: [vuex] vuex requires a Promise polyfill in this browser. at webpack:///~/vuex/dist/vuex.js:145:0 <- index.js:9871 解决方法: npm install --save-dev babel-polyfill karma.conf.js files: [ '../node_modules/babel-

IE报vuex requires a Promise polyfill in this browser问题解决

使用Vuex, IE浏览器报错 因为使用了 ES6 中用来传递异步消息的的Promise,而IE低版本的浏览器不支持. 解决方法 第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 npm install babel-polyfill --save 第二步: build/webpack.base.conf.js文件中,使用 "babel-polyfill" module.exports = { entry:

vue项目在IE下报 [vuex] vuex requires a Promise polyfill in this browser问题

如下图所示,项目在IE11下打开报错: 因为使用了 ES6 中用来传递异步消息的的Promise,而IE浏览器都不支持. 解决方法: 第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 $ npm install --save babel-polyfill npm WARN ajv[email protected] requires a peer of [email protected]^6.0.0 but none

IE9报vuex requires a Promise polyfill in this browser问题解决

因为使用了 ES6 中用来传递异步消息的的Promise,而IE低版本的浏览器不支持. 如图所示: 解决方法第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 npm install --save babel-polyfill 第二步: 在 Webpack/Browserify/Node中使用 在webpack.config.js文件中 把 module.exports = { entry: { app: './sr

vue在IE11报错‘vuex requires a Promise polyfill in this browser.’

报错信息 因为使用了 ES6 中用来传递异步消息的的Promise,而IE浏览器都不支持.(vuex使用了ES6语法) npm install babel-polyfill(安装babel-polyfill) Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而可以在现有环境执行.所以你可以用ES6编写,而不用考虑环境支持的问题. 修改方法1: 在 Webpack中使用 修改方法2: 在main.js中使用 import"babel-polyfill"; import

28、IE报vuex requires a Promise polyfill in this browser问题解决

解决方法第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 npm install --save babel-polyfill 第二步:在webpack.base.conf.js文件中修改: module.exports = { entry: { app: ["babel-polyfill", "./src/main.js"] } }; 替换 module.exports = { ent

VUE项目 - IE报vuex requires a Promise polyfill in this browser问题解决

第一步: 安装 babel-polyfill . babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法 npm install --save babel-polyfill 第二步: 在 Webpack/Browserify/Node中使用 在webpack.config.js文件中,使用 module.exports = { entry: { app: ["babel-polyfill", "./src/main.js"] } }; 替换

如何解决ArrayAdapter requires the resource ID to be a TextView

今天碰到这样一个难题,搞了很久都没搞定,到网上搜索了一下,发现有很多人都在问这样的问题,现在将自己解决和分析的结果放置如下: 在ArrayAdapter()这个类中有多个构造方法,我仅据此列以作代表: ArrayAdapter(Context context ,int textViewResourceId ,List<T> objects) 参数: context    ----> the current context textViewResourceId ----> the r

使用sessionStorage解决vuex在页面刷新后数据被清除的问题

https://www.jb51.net/article/138218.htm 1.原因 2.解决方法 localStorage没有时间期限,除非将它移除,sessionStorage即会话,当浏览器关闭时会话结束,有时间期限,具有自行百度 我这里使用sessionStorage,这里需要注意的是vuex中的变量是响应式的,而sessionStorage不是,当你改变vuex中的状态,组件会检测到改变,而sessionStorage就不会了,页面要重新刷新才可以看到改变,所以应让vuex中的状态