SCRIPT1003: ожидаемое ':' в IE ~ Vue.js ~ MDBootstrap - PullRequest
2 голосов
/ 26 сентября 2019

У меня есть простое приложение Vue.js, которое отлично работает в других браузерах, кроме IE, которое показывает пустую страницу с ошибкой SCRIPT1003: Expected ':'.Я добавил vue.config.js файл, который выглядит так:

module.exports = {
  transpileDependencies: ["bootstrap-css-only", "mdbvue"]
};

Мой .babelrc файл по умолчанию взят из официального проекта стартовая страница , это:

{
  "presets": [
    [
      "env",
      {
        "modules": false,
        "targets": {
          "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
        }
      }
    ],
    "stage-2"
  ],
  "plugins": ["transform-vue-jsx", "transform-runtime"]
}

В моем файле main.js я попробовал 2 подхода:

import "core-js/stable";
import "regenerator-runtime/runtime";

и

import "@babel/polyfill";

Оба ничего не изменили, и ошибка и поведениетакой же.Единственная вещь, которая все еще приходит мне в голову, чтобы решить эту проблему, упоминается здесь , то есть в export default я использую следующий синтаксис для компонента:

components: {
  mdbContainer,
  mdbRow,
  mdbCol,
  mdbCard,
  mdbCardBody,
  mdbInput,
  mdbBtn,
  mdbIcon,
  mdbModalFooter,
  mdbView
}

Edit2:Но если я опущу эти строки, то все мои элементы пользовательского интерфейса из MDBootstrap исчезнут.Есть ли другой способ использовать его?Я просто хотел использовать полифилсы.

Я пытался создать файл babel.config.js, но также не помог.Логика в этом файле выглядит следующим образом:

module.exports = {
  presets: [["@vue/app", { useBuiltIns: "entry" }]]
};

Что-то мне не хватает?Как я понял, файл vue.config.js не нужно никуда импортировать, потому что vue.config.js - это необязательный файл конфигурации, который будет автоматически загружен @vue/cli-service.Вот мои вопросы:

  1. Есть идеи, что может быть не так?
  2. Должен ли я иметь babel.config.js и .babelrc или только один из них?
  3. Файл babel.config.js автоматически определяется как vue.config.js?
  4. [Редактировать] Может быть, что-то в конфигурации веб-пакета должно быть изменено?

Версия Vue CLI:

$ vue --version
3.11.0

1 Ответ

2 голосов
/ 26 сентября 2019

Проблема в том, что IE11 не поддерживает сокращенную запись свойств, но вы используете ее в своем списке components.Ваш .babelrc не настроен для обеспечения того, чтобы полученный код мог работать на IE11.

Вы захотите просмотреть документацию по списку браузеров , чтобы настроить параметры browsers,но, например, добавление IE 11 к нему гарантирует, что в переданном коде есть все преобразования, необходимые для работы в IE11.

Обратите внимание, что IE11 в принципе ничего не поддерживает в ES2015 +.(У него const и неработающая версия let, но это в основном так.) Таким образом, это эффективно переведет весь ваш код на уровни ES5.Вы можете использовать разные пакеты для IE и других, более современных браузеров.

...