Async-компонент webpack и vue из другого проекта / домена

Я новичок в webpack, я уже просмотрел несколько руководств и получил рабочую конфигурацию своего проекта.

Я пытаюсь асинхронно загружать компоненты vuejs следующим образом:

<template>
  <div id = "app">
    <component
      :is = "template"
    >
    </component>
  </div>
</template>
<script>
export default {
  name: 'App',
  computed: {
    template () {
      return () => import(`@/templates/${this.$template.name}`)
    }
  },
  mounted () {
    this.template().then(comp => {
      this.$nextTick(() => {
        //...
      })
    })
  }
}
</script>

После компиляции webpack я получаю три файла:

  • app.js
  • 0.js
  • index.html

это результат, который я хочу, потому что это будет виджет, поэтому включение только одного файла js (app.js), который вызывает 0.js во время его выполнения, и он хорошо работает, когда app.js включен на страницу index.html на том же хосте

Но как мне это сделать, если я хочу подключить файл app.js с другого хоста?

Например, если у меня есть mywebsite.com/index.html, который включает скрипт app.js

<!--https://mywebsite.com/index.html-->
<script src = "https://my_widget_host.com/app.js"></script>

Я получаю ошибку 404 при попытке получить файл 0.js, потому что вызовы выполняются на http://mywebsite.com/0.js, а не на http://my_widget_host.com/0.js

Есть ли способ добавить к файлу 0.js префикс URL-адреса сервера, на котором размещен файл?

Вас, вероятно, заинтересует: stackoverflow.com/questions/50336623/…

ghybs 19.06.2018 03:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
406
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Конечно, поэтому был изобретен publicPath (https://webpack.js.org/guides/public-path/). Вы можете установить его во время сборки или, что более удобно, во время выполнения - просто назначьте window.webpack_public_path = 'https://my_widget_host.com/';

С Уважением.

Это также работает, если ваши компоненты компилируются в папку, например / js / dist /, и вы используете предварительную выборку. Спасибо за это.

Craig 25.08.2020 22:52

Другие вопросы по теме