概要
Androidの標準ブラウザというのがあってな…
というおじさん臭い話です。
現象
環境
バージョン | |
---|---|
Android | 4.4.2 |
Vue | 2.1.6 |
Vuex | 2.1.1 |
このときに起きるエラーは以下の様なものです。
標準ブラウザなのでJavaScriptコンソールを開いてみると
Uncaught Error: [vuex] vuex requires a Promise polyfill in this browser.
とでています。
VuexではPromise使おうとしているけど、それがこのブラウザにはないよ、polyfill使ってね、という感じです。
対応方法
pollyfillって何を使えば良いんだろうとgoogle先生に聞いてみます、と以下2つぐらいがでてきました。
- https://github.com/vuejs-templates/webpack/issues/260
- http://stackoverflow.com/questions/40784305/vue-unit-test-error-vuex-requires-a-promise-polyfill-in-this-browser
どうも皆様karmaでうまくいかないようです。 Android標準ブラウザなんかで困っている人なんて
以下のようにインストールしろと言っているので、入れているpollyfillはbabelのもののようです。今回もinstallするとうまくいきます。
npm install --save-dev babel-polyfill
npmを使っていない場合
しかし、残念ながら私の環境ではnpmを使っていなかったのです。
その為 https://babeljs.io/docs/usage/polyfill/ の Usage in Browser
にも書かれていますが、
vuexを読み込む前にこのpollyfillを読めば良いです。
pollyfillは適当に何処かで npm install
をして node_modules/babel-polyfill/dist
に入っているpolyfill.min.jsからありがたくもらってきましょう。