Я новичок в 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 я получаю три файла:
это результат, который я хочу, потому что это будет виджет, поэтому включение только одного файла 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-адреса сервера, на котором размещен файл?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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