Я следую официальному учебнику webpack по настройке сервера webpack. Вот мой конфиг веб-пакета:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
mode: 'development',
entry: {
app: './src/index.js',
print: './src/print.js',
},
devtool: 'inline-source-map',
devServer: {
contentBase: './dist',
// port: 8081 // <-- uncommenting this line gets rid of the error
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title: 'Output Management',
})
],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist'),
},
}
Однако, когда я пытаюсь запустить сервер, я получаю странную проблему. Код компилируется должным образом в соответствии с выводом веб-пакета, но когда URL пытается открыть в Chrome / Safari, я получаю «Этот сайт не может быть достигнут» с ERR_CONNECTION_RESET
. В приведенной выше конфигурации, когда я раскомментирую строку 8081
, все работает как положено (за исключением того, что сервер теперь находится на порте 8081).
Первоначально я думал, что порт должен быть занят, но обнаружил, что это не тот случай, поскольку я могу запустить файл типа
var http = require('http');
http.createServer(function (req, res) {
res.write('Hello World!');
res.end();
}).listen(8080);
и увидеть ожидаемый Hello World
на порту8080.
Почему сервер разработки веб-пакетов не может работать на порте 8080?
Если это имеет значение, я работаю на OSX 10.15 Catalina с Node.js v12.13.0.