Это полностью работает для меня и спасло мою задницу !!! другие ответы заставляют вас рефакторировать весь ваш код.

ользую Rails 5.2.0 и гем Webpacker для развертывания приложения Vue.

Файл show.html.erb очень прост:

<div data-behavior="vue-app"><MyComponent></MyComponent></div>

И затем в моем пакете входных данных, packs / my_vue_app.js:

import TurbolinksAdapter from 'vue-turbolinks';
import Vue from 'vue/dist/vue.esm'
Vue.use(TurbolinksAdapter);
import MyComponent from '../components/my_app/index.vue'

document.addEventListener('turbolinks:load', () => {

  var element = $('[data-behavior="vue-app"]');

  if(!element) { return };

  console.log('Initializing Vue');

  const app = new Vue({
    el: element[0],
    data: {

    },
    components: { MyComponent }
  })
})

В разработке все работает абсолютно нормально. Приложение установлено и работает.

Но в производстве, после загрузки страницы и запуска JS,<div data-behavior="vue-app"> удаляется из подкачки, оставляя только<!-- --> на своем месте.

В консоли нет абсолютно никаких ошибок. Используя DevTools, я могу подтвердить, что файл пакета js загружен и проанализирован, поскольку console.log печатается в консоли.

Черт, доказательство того, что Vue работает, заключается в том, что весь<div> место его монтирования было удалено из DOM после разбора JS.

Самое странное, что я смог заставить приложение монтировать ONCE, подключив отладчик к строке console.log и отключив его, пока отладчик приостанавливал выполнение. Даже тогда, когда я видел приложение, монтируемое в то время, я не мог заставить его подключиться позже, даже снова возиться с отладчиком ... это действительно, очень странно.

Это версии package.json:

"vue": "^2.5.16", "vue-loader": "14.2.2", "vue-template-compiler": "^2.5.16",

Приложение Rails совершенно новое, без настроек, отличных от настроек по умолчанию.

Gem Webpacker - 3.5.3, а Rails - 5.2.0.

Потратив очень много времени на это, я обнаружил только одну проблему с github:https://github.com/rails/webpacker/issues/1520

РЕДАКТИРОВАТЬ: Я предоставляю ссылку на реальное, производственное приложение, где эта ошибка происходит:https://planilha.tramitacaointeligente.com.br/planilhas/ED2sUXz32-R9CJKdkmtf8Q

Вы увидите, что это не монтаж. Вот та же страница в разработке:

Ответы на вопрос(1)

Ваш ответ на вопрос