Я нашел решение своей проблемы и хотел бы оставить рекомендацию для всех, кто переключается с webpack
на webpack-dev-server
:
Сначала вы захотите добавить общедоступныйпуть к вашему webpack.config.js
файлу:
module.exports = {
...
output: {
...
filename: "bundle.js",
publicPath: '/build',
...
},
...
}
webpack-dev-server
раскручивает сервер, работающий на порту 8080, с загруженным файлом и доступным из указанного вами имени publicPath +.Поэтому, если вы хотите включить его , вам нужно будет добавить тег сценария, подобный этому:
<script src='http://localhost:8080/build/bundle.js'>
или, в более общем случае,
<script src='http://localhost:8080/publicPath/filename'>
Теперь первая проблема заключается в том, что в работе вы не будете использовать webpack-dev-server.Вы будете использовать веб-пакет, который создает файл сборки по указанному пути.Так что вам нужно будет сделать что-то подобное в вашем html, который включает в себя пакет:
<?php
$BundlePath = IsThisMyLocalMachine ? 'http://localhost:8080/publicPath/filename' : 'build\bundle.js'
?>
<html>
...
<script src='<?php echo $BundlePath ?>'>
..
</html>
Теперь последняя проблема заключается в том, что если ваш сайт использует https
и webpack-dev-server
serveпри сборке http
браузер блокирует его как смешанный контент.
Обойти это довольно просто. Вам просто нужно указать webpack-dev-server
об отправке контента на https
, добавив это в свой файл конфигурации:
module.exports = {
...
output: {
...
filename: "bundle.js",
publicPath: '/build',
...
},
devServer: {
https: true,
},
...
}
Теперь, если вы измените все эти http://localhost:8080/
на https://localhost:8080/
все должно работать нормально