Использую Laravel + Vue, изменил основную директорию на site, файлы собираются в неё:
webpack.mix.js
mix.setResourceRoot('/site')
mix.setPublicPath('public/site')
mix.js('resources/js/app.js', 'public/site/js')
.vue()
.sass('resources/sass/app.scss','public/site/css')
.version()
Файлы успешно собираются где нужно:
http://127.0.0.1:8000/site/js/app.js
http://127.0.0.1:8000/site/js/resources_js_components_my_component_vue.js
...
Обычные компоненты vue работают, но асинхронные не хотят (объявленные через функцию vue defineAsyncComponent), app.js хочет их по адресу /js/ , а не /site/js/ где они лежат, и получается ошибка:
Uncaught (in promise) ChunkLoadError: Loading chunk resources_js_components_my_component_vue failed.
(missing: http://127.0.0.1:8000/js/resources_js_components_my_component_vue.js)
Как ему сказать, чтобы он их тоже искал в /site/js?
webpack This function allow to reference async chunks
/* webpack/runtime/get javascript chunk filename */
/******/ (() => {
/******/ // This function allow to reference async chunks
/******/ __webpack_require__.u = (chunkId) => {
/******/ // return url for filenames not based on template
/******/ if ({"resources_js_components_my_component_vue":1}[chunkId]) return "js/" + chunkId + ".js";
/******/ // return url for filenames based on template
/******/ return undefined;
/******/ };
/******/ })();