Почему блоки webpack загружаются с my_domain.com, а не с localhost: 8080 при использовании сервера разработки webpack? - PullRequest
0 голосов
/ 28 декабря 2018

Я использую webpack в моем проекте.Когда пакет Javascript стал большим, я решил разделить код с помощью react-loadable динамического импорта, например

...
import Loadable from 'react-loadable';

const LoadablePage = Loadable({

    loader: () => import('./page'),
    loading: Loading,
});

class Main extends Component {

    render () {

        return (<LoadablePage/>);
    }
}

Когда я открываю страницу http://my_domain.com, браузер успешно загружает index.js из http://localhost:8080/build/test/index.js,Затем попробуйте загрузить 0.js чанк из http://my_domain.com/build/0.js.

Но 0.js не существует в расположении http://my_domain.com/build/0.js, его можно успешно загрузить из http://localhost:8080/build/0.js.

Как правильно указать домен для фрагментов загрузки при разработке?

Webpack config

module.exports = {

    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: {

        contentBase: './build/',
        proxy: [{

            path: '/',
            target: 'http://localhost',
            port: 8080,
        }],
    },
    ...
}

Шаблон страницы

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no"/>
        <link rel="stylesheet" href="http://localhost:8080/build/test/index.css"/>
    </head>
    <body>
        <div id="root"></div>
        <script src="http://localhost:8080/build/test/index.js"></script>
    </body>
</html>
...