Почему я получаю «SyntaxError: недопустимый диапазон в классе символов» при обновлении до Vue 2.6.0? - PullRequest
0 голосов
/ 13 февраля 2019

Я обновил vue до версии 2.6.0, и в консоли браузера появилось следующее сообщение об ошибке:

SyntaxError: invalid range in character class vue.runtime.esm.js:495
2b0e/<     vue.runtime.esm.js:495
2b0e     vue.runtime.esm.js:1
s     bootstrap:78
56d7     ExportTable.vue:1:556
s     bootstrap:78
[0]     bootstrap:151
s     bootstrap:78
n     bootstrap:45
<anonymous>     bootstrap:151
<anonymous>     https://mywebsite.com:8443/js/app.ee42fe22.js:1:2

Мой бэкэнд - Spring Boot.Я создаю интерфейс, запустив npm run build и скопировав его в папку ресурсов моего Spring Boot, настроенного с помощью pom.xml.

Перед обновлением до 2.6.0 я был на 2.5.22 и все работало отлично.Чтобы попытаться сузить проблему, я попробовал много вещей, которые были пустой тратой времени, но я заметил, что, когда я удалил блок <style>...</style> файла ExportTable.vue, в котором я получал ошибку,ошибка больше не будет появляться в ExportTable.vue и вместо этого будет отображаться в родительском компоненте.

<style>
.title-search {
  margin-top: 30px;
  margin-bottom: 30px;
  padding-left: 35px;
}

#hiddenDailyLimitFld {
  color: #c21232;
  background-color: #f9dede;
  border: 1px solid #c21232;
  padding: 8px 5px;
  margin-bottom: 15px;
  border-radius: 2px;
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
  font-weight: 500;
}

.content-searchLinkBtn {
  position: relative;
  padding-right: 35px;
  overflow: auto;
  width: 100%;
  box-sizing: border-box;
}

.newSearchBtn {
  color: #ffffff;
  background-color: #4679b2;
  width: 8em;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  padding: 6px 12px;
  font-size: 13px;
  border-radius: 3px;
  float: right;
}
</style>

Я также попытался удалить каждый блок выбора css 1 на 1 и построить / развернуть в производство, чтобы увидеть, было ли этоконкретный блок CSS, который вызывал его, но ошибка продолжала появляться, пока я не удалил все блоки CSS и сами теги <style>...</style>.

Странно то, что я получаю его только при развертывании впроизводство с помощью команды npm run build.Мой package.json выглядит так, как будто он выполняет правильные команды в соответствии с этим блоком:

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

Когда я использую vue-cli3 для "подачи" в меню задач, которое выглядит так, как будто он запускает команду $ vue-cli-service serve --mode development --dashboard, ошибок нет и все работает отлично.Я попытался развернуть Prod с vue-cli-service build --mode development, и он работал нормально, так что похоже, что есть проблема, когда он минимизируется или собирается для производства.

Я думаю, что это может быть связано с этой проблемой с 2016 года:https://github.com/vuejs/vue/issues/2291

ОБНОВЛЕНИЕ: Вот мой main.js файл:

import './plugins/vuetify'
import '@/resources/css/global.css'
import '@/resources/css/font-awesome-4.7.0/css/font-awesome.css'

import Vue from 'vue';

import App from './App';
import Error from '@/view/Error/Error.vue';
import router from './router.js';
import store from './store.js'
import rest from '@/services/RestService.js';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
import './resources/js/font-awesome.js'

Vue.component('font-awesome-icon', FontAwesomeIcon);

Vue.config.productionTip = true;
Vue.config.devtools = true;

var vue_opts = { el: '#app', render: h => h(Error) };
rest.check().then((response) => {
  if (response.user) {
    vue_opts.render = h => h(App);
    vue_opts.router = router;
    vue_opts.store = store;
  }
  new Vue(vue_opts);
})
  .catch((res) => {
    new Vue(vue_opts);
  });

1 Ответ

0 голосов
/ 20 февраля 2019

Вы также обновляли свой бэкэнд Spring Boot?

В моем случае, с таким же сообщением об ошибке, мой бэкэнд отправлял неверный заголовок Charset-Header.Запуская мой jar из Windows, я получил заголовок windows-1252, из Linux US-ASCII.

Мне пришлось установить кодировку vertx по умолчанию на UTF-8.Весной Как установить кодировку UTF-8 в загрузке Spring? может быть вашим решением?

В противном случае, в зависимости от внешнего интерфейса, это https://forum.vuejs.org/t/misplaced-meta-charset-utf-8-fun/55800 может быть полезным.

Опять же, в конце концов, я думаю, что вы посылаете неправильную кодировку в браузер.

...