博客 / 詳情

返回

vue-cli3+babel7項目兼容IE

正常來説項目都可以忽略IE,無奈我們還是有一些比較傳統的大企業要用我們的系統,所以還得支持IE10~11;

網上比較多資料都比較舊了,自己擼了一些就不想看了,大部分都是因為不同的babel版本不一樣

正常來説vue-cli3的項目、默認配置會將es6+的轉成e5,在babel.confi.js中加上以下配置即可

module.exports = {
  presets: [
    '@vue/app'
  ]
}

默認忽略node_moudules,但是有些包可能並沒有做好轉化,所以需要我們轉化
vue官方也提供了比較好的屬性transpileDependencies
來將node_modules裏面的部分包加到babel的轉化
如下配置,在vue.config.js中添加


module.exports = {
    // ...省略多餘配置
    transpileDependencies: [''], // node_modules裏面的包名,比如nprogress

}

以上都是比較常規的配置,但是配置過程中會出現報錯

本地跑起來會報錯:
image.png

瀏覽器運行報錯:
image.png

主要原因是es6的importcommonjs聲明衝突
有人説,在引入包的頁面上,直接將import改成require就可以,
但是實際上還是會報錯
如下:
image.png

其實也是有解決方案的
babel.config.js中多配置一個屬性sourceType就可以

module.exports = {
  presets: [
    '@vue/app'
  ],
  sourceType: 'unambiguous',
}

babel官方描述sourceType
主要有三個值
script: 可以編譯不包含import/export,非嚴格模式
module: 可以編譯ES6+的語法,含import/export
unambiguous:兼容以上二者

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

發佈 評論

Some HTML is okay.