首页 > 解决方案 > “符号”在 IE 11 中未定义

问题描述

我正在使用 webpack + babel 来启用 polyfill。它在 Edge 中工作,但在 IE 11 中它会抛出'Symbol' is undefined.

错误是引用这一行,更具体地说是这一行中的字符 29,它是 的第一个下划线__webpack_exports__

/* harmony default export */__webpack_exports__["default"]={name:'BCheckbox',props:{value:[String,Number,Boolean,Function,Object,Array,Symbol],nativeValue:[String,Number,Boolean,Function,Object,Array,Symbol],indeterminate:Boolean,type:String,disabled:Boolean,required:Boolean,name:String,size:String,trueValue:{type:[String,Number,Boolean,Function,Object,Array,Symbol],default:true},falseValue:{type:[String,Number,Boolean,Function,Object,Array,Symbol],default:false}},data:function data(){return{newValue:this.value};},computed:{computedValue:{get:function get(){return this.newValue;},set:function set(value){this.newValue=value;this.$emit('input',value);}}},watch:{/**

为什么我会收到此错误?

编辑:

我正在使用具有此默认 babel 配置的 Laravel Mix,这是我的.babelrc

{
  "presets": [
    [
      "@babel/preset-env", 
      {
        "targets": {
          "browsers": ["IE 11, last 2 versions"]
        }
      }
    ]
  ]
}

标签: javascriptinternet-explorerwebpackbabeljs

解决方案


符号是 IE11 不支持的新 javascript 概念

http://kangax.github.io/compat-table/es6/#test-Symbol

您需要更改target编译器配置,以便将其转换为 IE11 可以解释的内容。


推荐阅读