Uruchomiłem swoją witrynę na urządzeniu mobilnym przeglądarce chrome w systemie operacyjnym Android i widzę w konsoli taki oto błąd :
Uncaught TypeError: text.replaceAll is not a function
No i rozumiem co to znaczy. Metoda replaceAll została niedawno wprowadzona i część przeglądarek może tego nie rozumieć. Ale w tej sytuacji według mnie nie ma to sensu gdyż : wersja chrome jest najnowsza jaka może być bo została dzisiaj zainstalowana - więc chyba powinna to ogarniać. No O.K - ale nawet pomijając ten fakt i tak coś się nie zgadza. Kod jest kompilowany webpack'iem.
W pliku package.json ustawiłem klucz o nazwie "browserslist" i nadałem mu wartość "cover 99.5%".
Czyli jak rozumiem skompilowany kod powinien pokrywać 99.5% przeglądarek. Postępowałem zgodnie z instrukcjami : https://babeljs.io/docs/en/babel-preset-env#browserslist-integration oraz https://github.com/browserslist/browserslist#queries
Nie mniej po przekompilowaniu nadal pojawia się ten sam błąd. Podejrzałem skompilowany plik i nadal replaceAll jest widoczne. Źle skonfigurowałem babel'a?
Korzystam z laravel.mix oto kod
.options({ processCssUrls: false })
.babelConfig({
plugins: ['@babel/plugin-syntax-dynamic-import', "@babel/plugin-transform-modules-commonjs"],
presets: ["@babel/env"]
})
Package.json
{
"private": true,
"browserslist": "cover 99.5%",
"scripts": {
"development": "mix",
"watch": "mix watch",
"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"production": "mix --production"
},
"devDependencies": {
"@babel/core": "^7.12.16",
"@babel/helper-compilation-targets": "^7.12.16",
"@babel/plugin-syntax-jsx": "^7.12.13",
"@babel/preset-env": "^7.15.6",
"@babel/preset-react": "^7.12.13",
"@types/webpack-env": "^1.16.2",
"@vue/compiler-sfc": "^3.2.4",