Почему загрузка блоков webpack игнорируется портом devServer? - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь использовать динамический импорт с React.lazy. Код довольно прост

import React, { Component, Suspense, lazy, } from 'react';

const BlazyComponent = lazy(() => {

    return import('./blazy');
});

class Main extends Component {

    render () {

        return (<Suspense fallback={<div>Loading...</div>}>
            <BlazyComponent/>
        </Suspense>);
    }
}

export default Main;

Итак, когда я запускаю Webpack devServer, консоль браузера показывает ошибку

index.js:114 Uncaught (in promise) Error: Loading chunk 0 failed.
(missing: http://domain/build/0.js)
    at HTMLScriptElement.onScriptComplete (index.js:114)

Как я вижу, пакеты index.css и index.js успешно загружены из http://domain:8080/build/test/index.css и http://domain:8080/build/test/index.js.

Но чанк загружается из http://domain/build/0.js (webpack devServer игнорирует порт). Как я могу форсировать загрузку чанка из http://domain:8080/build/0.js.

Webpack config

entry: {

    'test/index': [ 'babel-polyfill', './resources/assets/modules/test/index', ],
},
output: {

    path: path.resolve(__dirname, './public/build/'),
    publicPath: '/build/',
    filename: '[name].js',
    chunkFilename: '[name].js',
},
...
devServer: {

    host: 'domain',
    port: 8080,
},

PS. Я знаю, что могу использовать переменные среды, но ищу более элегантное решение

1 Ответ

0 голосов
/ 14 марта 2019

Попробуйте изменить publicPath на http://domain:8080/build/?

См. https://webpack.js.org/guides/public-path/#environment-based

...