博客 / 詳情

返回

Vue項目下IE報錯 SCRIPT1003: 缺少 ':',導致頁面空白的解決方案

今年年初加入了物資團隊,遇到的第一個問題就是解決IE的兼容性問題。

1 現象

當時的情況是IE瀏覽器在登錄系統時,登錄頁無法加載,頁面顯示空白,所以也無法訪問系統裏的其他頁面。

2 查看報錯

在IE瀏覽器中輸入系統網址,打開控制枱,發現有這樣的報錯:SCRIPT1003: 缺少 ':' 第一個想法就是需要對webpack進行一些兼容性配置,於是小編低下頭默默的先進行了一通通用配置操作。

3 進行通用兼容性配置

由於本系統前端框架用到的腳手架是3.x版本,因此得針對cli3來進行配置。

3.1 對vue.config.js文件進行檢查

3.2 引入polyfill

cnpm install es6-promise –D

3.3 配置presets

打開babel.config.js文件,將presets進行如下設置:

// vuecli3 不需要配置transform-vue-jsx
presets: [
  [
    '@vue/app',
    {
      useBuiltIns: 'entry',
      polyfills: ['es6.promise', 'es6.symbol']
    }
  ]
],
plugins: ['lodash', 'jsx-v-model']
}

3.4 入口文件的配置

打開main.js文件,將3.1安裝的polyfill進行引入:

import Es6Promise from 'es6-promise'
Es6Promise.polyfill()

4 進行第三方庫的排查

進行通用配置之後,仍然報錯,這時候就可以確定剩下的原因是由於第三方插件引起的,需要在package.json文件中查看引入了哪些第三方庫。

將可能會有兼容性問題的庫引入到vue.config.js文件下的transpileDependencies集合中,經排查,將以下兩個庫補充進集合中:

  transpileDependencies: [
    'vue-echarts',
    'resize-detector',
    'v-contextmenu',
    'vue-runtime-helpers'
  ]

5 測試

配置完成後,重新啓動項目進行驗證,這時候發現可以成功登錄系統並進入首頁。

到此為止這個問題也就解決了,可以順利加載出登錄頁面,並且成功登進了系統。

順利解決,喜大普奔hē hē hē hē。

關於作者:JeremyCC

一個愛唱歌的前端工程獅,喜歡我可以點關注噢!(頭像僅供參考,哈哈)

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.