alexbuki
@alexbuki
программист js

Как правильно настроить webpack in production mode, если я использую webpackDevMiddleware, webpackHotMiddleware?

Добрый день.
Есть сервер на express, в котором для разработки использую webpackDevMiddleware и webpackHotMiddleware.

const express = require('express');
const session = require('express-session');
const http = require('http');
const webpack = require('webpack');
const webpackConfig = require('./webpack.config');
const compiler = webpack(webpackConfig);
const webpackDevMiddleware = require('webpack-dev-middleware')(
  compiler, {
    publicPath: webpackConfig.output.publicPath,
  },
);
const webpackHotMiddleware = require('webpack-hot-middleware')(
  compiler,
);
const app = express();
app.use(webpackDevMiddleware);
app.use(webpackHotMiddleware);
app.set('trust proxy', 1);
app.set('port', process.env.PORT || 3000);
app.use(session(.....}));

app.use('/admin', (req, res, next) => { // админка
  if (req.session.log_in) next();
  else res.redirect('/login');
}, express.static('dist'));
const server = http.createServer(app);
server.listen(3000, () => {
  console.log('Сервер запущен на 3000 порту');
});

Так сейчас выглядит конфиг вебпака:
const webpack = require('webpack');

module.exports = {
  mode: 'development',
  entry: {
    main: ['./admin/main.js'],
  },
  devtool: 'inline-source-map',
  devServer: {
    contentBase: './dist',
    overlay: true,
    inline: true,
    hot: true,
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery',
    }),
  ],
  output: {
    filename: '[name].bundle.js',
    publicPath: '/dist/',
  },
  module: {
    rules: [
      {
        test: /\.m?js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env'],
          },
        },
      },
      {
        test: /\.css$/i,
        use: [
          { loader: 'style-loader' },
          { loader: 'css-loader' },
        ],
      },
    ],
  },
};

По сути на продакшн нужны только собранные файлы.
Подскажите пожалуйста, как правильно прописать скрипты в package.json для production и как настроить webpack config?
  • Вопрос задан
  • 785 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
Примерно так как рекомендуют тут: https://webpack.js.org/guides/production/
там конфиг, скрипты, опции.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы