flamebird

Форк
0
/
webpack.config.js 
98 строк · 2.3 Кб
1
const path = require('path')
2
const TerserJSPlugin = require('terser-webpack-plugin')
3
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
4

5
const srcFolder = process.env.SRC_DIR || path.resolve(__dirname, './client')
6
const destFolder = process.env.DEST_DIR || path.resolve(__dirname, './dist')
7

8
const isDev = process.env.NODE_ENV === 'development'
9

10
module.exports = {
11
  devtool: isDev ? 'eval' : false,
12
  mode: isDev ? 'development' : 'production',
13
  target: 'web',
14
  entry: {
15
    'index.html': path.resolve(srcFolder, './index.html'),
16
    global: path.resolve(srcFolder, './global.js'),
17
  },
18
  output: {
19
    path: destFolder,
20
  },
21
  module: {
22
    rules: [
23
      {
24
        test: /\.html$/,
25
        loaders: [
26
          'file-loader?name=[name].html',
27
          'extract-loader',
28
          {
29
            loader: 'html-loader',
30
            options: {
31
              minimize: !isDev,
32
              root: srcFolder,
33
              attrs: ['img:src', 'link:href'],
34
            },
35
          },
36
        ],
37
      },
38
      {
39
        test: /\.(png|jpg|gif)$/,
40
        loaders: [
41
          {
42
            loader: 'url-loader',
43
            options: {
44
              limit: 8192,
45
              fallback: 'responsive-loader',
46
              quality: 75,
47
            },
48
          },
49
        ],
50
      },
51
      {
52
        test: /\.js$/,
53
        loaders: [
54
          {
55
            loader: 'babel-loader',
56
            options: {
57
              babelrc: true,
58
            },
59
          },
60
        ],
61
      },
62
      {
63
        test: /\.css$/,
64
        use: ['file-loader', 'extract-loader', 'css-loader'],
65
      },
66
      {
67
        test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
68
        use: [
69
          {
70
            loader: 'file-loader',
71
            options: {
72
              name: '[name].[ext]',
73
              outputPath: 'fonts/',
74
            },
75
          },
76
        ],
77
      },
78
    ],
79
  },
80
  optimization: {
81
    minimizer: isDev
82
      ? []
83
      : [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin({})],
84
  },
85
  // plugins: [
86
  //   new HtmlWebpackPlugin({
87
  //     minify: {
88
  //       html5: true,
89
  //       removeComments: true,
90
  //       collapseWhitespace: true,
91
  //       minifyCSS: true,
92
  //       minifyJS: true,
93
  //       // minifyURLs: true
94
  //     },
95
  //     template: entryHtmlFileAbsolutePath,
96
  //   }),
97
  // ],
98
}
99

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.