Как заставить webpack-dev-middleware обслуживать файлы из файловой системы в памяти с правильными типами mime? - PullRequest
1 голос
/ 22 октября 2019

Webpack-dev-middleware не обслуживает некоторые типы файлов из файловой системы в памяти с правильными типами MIME. Is правильно обслуживает пакеты .js и активы .css, но отправляет изображения в виде текста / html

Я использую следующие версии пакетов:

{
   "express": "^4.17.1",
   "webpack-dev-middleware": "^3.7.0",
   "webpack-dev-server": "^3.7.2",
   "webpack-hot-middleware": "^2.25.0"
}

node.js v12.13.0

Моя ветвь разработки сервера выглядит следующим образом:

const webpack = require('webpack');
const config = require('../webpack.config');
const compiler = webpack(config);

server.use(require('webpack-dev-middleware')(compiler, {
  filename: config.output.filename,
  publicPath: config.output.publicPath, 
  HotModuleReplacement: true
}));

server.use(require('webpack-hot-middleware')(compiler));

server.get('*', (req, res) => {
  const indexFile = path.resolve(compiler.outputPath, 'index.html');

  compiler.outputFileSystem.readFile(indexFile, (err, result) => {
    if (err) console.log(err);
    res.end(result);
  });
});

Итак, в основном я попробовал этот глупый подход с outputFilesystem, и мне не особенно нравится идея повторной реализации Express.

Как я пришел к выводу, чтоон даже отправляет Изображения

Статическое изображение, которое подается из памяти через webpack-hot-middleware, должно иметь тип mime, соответствующий его расширению.

Но на самом деле не-css /js и кто знает, какие еще ресурсы обслуживаются с помощью mime-типа text / html.

...