UNPKG

1.97 kBJavaScriptView Raw
1const webpack = require('webpack')
2const path = require('path')
3const HtmlWebpackPlguin = require('html-webpack-plugin')
4
5module.exports = {
6 mode: 'production',
7 entry: {
8 'app.min': [
9 './src/js/app.js',
10 ],
11 },
12 resolve: {
13 extensions: ['*', '.js'],
14 modules: [
15 'node_modules',
16 path.join(__dirname, 'src/js'),
17 ],
18 },
19 output: {
20 path: path.join(__dirname, 'dist'),
21 filename: 'js/[name].js',
22 publicPath: './',
23 },
24 module: {
25 rules: [
26 {
27 test: /\.scss$/,
28 exclude: /(node_modules)/,
29 include: [
30 path.resolve(__dirname, 'src/scss'),
31 ],
32 use: [
33 {
34 loader: 'style-loader',
35 },
36 {
37 loader: 'css-loader',
38 },
39 {
40 loader: 'postcss-loader',
41 options: {
42 plugins: (loader) => [
43 require('postcss-flexbugs-fixes')(),
44 require('autoprefixer')(),
45 require('cssnano')(),
46 ],
47 },
48 },
49 {
50 loader: 'sass-loader',
51 },
52 ],
53 },
54 {
55 test: /\.(js|jsx)$/,
56 exclude: /(node_modules)/,
57 include: [
58 path.resolve(__dirname, 'src/js'),
59 ],
60 use: [
61 {
62 loader: 'babel-loader',
63 options: {
64 cacheDirectory: false,
65 },
66 },
67 ],
68 },
69 {
70 test: /\.(js|jsx)$/,
71 exclude: /(node_modules)/,
72 include: [
73 path.resolve(__dirname, 'src/js'),
74 ],
75 use: [
76 {
77 loader: 'eslint-loader',
78 options: {
79 },
80 },
81 ],
82 },
83 ],
84 },
85 devServer: {
86 contentBase: './dist',
87 publicPath: '/',
88 port: 8080,
89 },
90 plugins: [
91 new HtmlWebpackPlguin({
92 filename: 'index.html',
93 template: './src/templates/index.ejs',
94 }),
95 ],
96}