Vue Babel выводит несовместимый код независимо от списка браузеров - PullRequest
1 голос
/ 25 марта 2019

У меня есть проект Vue CLI 3, который я строю.Похоже, что встроенный код игнорирует список разработчиков.Он выводит код, который нарушает Microsoft Edge независимо от того, добавляю ли я Edge в список браузеров или нет.

Синтаксис, который выводится, является оператором разброса параметров в лямбда-выражении типа

(...x) => {}

Это не поддерживается.определенной версией Edge, и мой проект продолжает выводить ее!

Вот некоторые из моих файлов:

package.json

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "await-mutex": "^1.0.2",
    "axios": "^0.18.0",
    "bootstrap": "^4.3.1",
    "bootstrap-vue": "^2.0.0-rc.15",
    "json5-loader": "^1.0.1",
    "jwt-decode": "^2.2.0",
    "lodash": "^4.17.11",
    "popper.js": "^1.14.7",
    "pretty-checkbox-vue": "^1.1.9",
    "vee-validate": "^2.2.0",
    "vue": "^2.6.9",
    "vue-router": "^3.0.2",
    "vuex": "^3.1.0",
    "tiptap": "^1.14.0"
  },
  "devDependencies": {
    "@types/lodash": "^4.14.123",
    "@vue/cli-plugin-babel": "^3.5.1",
    "@vue/cli-plugin-eslint": "^3.5.1",
    "@vue/cli-plugin-typescript": "^3.5.1",
    "@vue/cli-service": "^3.5.1",
    "@vue/eslint-config-typescript": "^3.0.5",
    "@types/jwt-decode": "^2.2.1",
    "node-sass": "^4.9.0",
    "sass-loader": "^7.0.1",
    "typescript": "^3.0.0",
    "vue-template-compiler": "^2.6.9"
  }
}

.browserslistrc

> 1%
last 2 versions
edge 15
not ie <= 8

babel.config.js

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

Что я пробовал:

  1. Удаление Typescript из проекта
  2. Изменение .browserslistrc с неверным браузеромпроверить, читает ли он файл или нет, и сборка не работает из-за отсутствия браузера (означает, что он читает файл).
  3. Устанавливает .browserslistrc в "т.е. 11", и он по-прежнему выводит лямбда-выражения и операторы распространения.

1 Ответ

1 голос
/ 27 марта 2019

Проблема заключается в двух вещах вместе взятых.

  1. Babel (по крайней мере по умолчанию) не переносит импортированные библиотеки, поэтому любой импортированный файл JS, использующий новый синтаксис, имеет большой шанс, что он останется как есть.
  2. Bootstrap-Vue использует такой синтаксис, и импорт отдельных компонентов может вызвать эту проблему.

Решение:

  1. Импортировать весь Bootstrap-Vue и Vue.use в main.js
...