Сервер разработки Webpack — не отображается index.html

#webpack #webpack-dev-server

Вопрос:

Когда я захожу на localhost: 5000 моих index.html файл не загружается. Есть ли способ для сервера Webpack Dev получить мой root index.html ? Каков наилучший способ сделать это.

Структура папок:

 ├── dist
│   └── main.js
├── src
│   └── app
│       └── app.js
├── index.html
├── package-lock.json
├── package.json
└── webpack.config.js
 

webpack.dev.js:

 const path = require('path');

module.exports = {
  mode: 'development',
  entry: './src/app/app.js',
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname   'dist'),
  },
  devServer: {
    static: {
      directory: path.join(__dirname, 'dist'),
    },
    port: 5000,
    open: true,
  },
};
 

Ответ №1:

В итоге я использовал HtmlWebpackPlugin и следовал документации Webpack HTML для его настройки. Итак, теперь моя файловая структура и webpack.dev.js файл выглядит как показано ниже. Я переместил свой index.html в src папку. HtmlWebpackPlugin автоматически сгенерирует все <script> включения в index.html файл и создаст index.html файл в папке dist.

Структура папок:

 ├── dist
│   └── // main.js and index.html will automatically be generated here
├── src
│   ├── app
│   │   └── app.js
│   └── index.html // index now in src folder
├── package-lock.json
├── package.json
└── webpack.config.js
 

webpack.dev.js:

 const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin'); // Add this

module.exports = {
  mode: 'development',
  entry: './src/app/app.js',
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname   'dist'),
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
    }),
  ],
  devServer: {
    static: {
      directory: path.join(__dirname, 'dist'),
    },
    port: 5000,
    open: true,
  },
};