Passed
Push — develop ( 0acb7d...2b66c4 )
by Andrew
06:39
created

webpack.dev.js (1 issue)

Severity
1
// node modules
2
const merge = require('webpack-merge');
3
const path = require('path');
4
const webpack = require('webpack');
5
6
// webpack plugins
7
const DashboardPlugin = require('webpack-dashboard/plugin');
8
9
// config files
10
const common = require('./webpack.common.js');
11
const pkg = require('./package.json');
0 ignored issues
show
The constant pkg seems to be never used. Consider removing it.
Loading history...
12
const settings = require('./webpack.settings.js');
13
14
// Configure the webpack-dev-server
15
const configureDevServer = () => {
16
    return {
17
        public: settings.devServerConfig.public(),
18
        contentBase: path.resolve(__dirname, settings.paths.templates),
19
        host: settings.devServerConfig.host(),
20
        port: settings.devServerConfig.port(),
21
        https: !!parseInt(settings.devServerConfig.https()),
22
        disableHostCheck: true,
23
        hot: true,
24
        overlay: true,
25
        watchContentBase: true,
26
        watchOptions: {
27
            poll: !!parseInt(settings.devServerConfig.poll()),
28
            ignored: /node_modules/,
29
        },
30
        headers: {
31
            'Access-Control-Allow-Origin': '*'
32
        },
33
    };
34
};
35
36
// Configure Image loader
37
const configureImageLoader = () => {
38
    return {
39
        test: /\.(png|jpe?g|gif|svg|webp)$/i,
40
        use: [
41
            {
42
                loader: 'file-loader',
43
                options: {
44
                    name: 'img/[name].[ext]'
45
                }
46
            }
47
        ]
48
    };
49
};
50
51
// Configure optimization
52
const configureOptimization = () => {
53
    return {
54
        splitChunks: {
55
            cacheGroups: {
56
            }
57
        },
58
    };
59
};
60
61
// Configure the Postcss loader
62
const configurePostcssLoader = () => {
63
    return {
64
        test: /\.(pcss|css)$/,
65
        use: [
66
            {
67
                loader: 'style-loader',
68
            },
69
            {
70
                loader: 'vue-style-loader',
71
            },
72
            {
73
                loader: 'css-loader',
74
                options: {
75
                    importLoaders: 2,
76
                    sourceMap: true
77
                }
78
            },
79
            {
80
                loader: 'resolve-url-loader'
81
            },
82
            {
83
                loader: 'postcss-loader',
84
                options: {
85
                    sourceMap: true
86
                }
87
            }
88
        ]
89
    };
90
};
91
92
// Development module exports
93
module.exports = merge(
94
    common.legacyConfig,
95
    {
96
        output: {
97
            filename: path.join('./js', '[name].js'),
98
            publicPath: settings.devServerConfig.public() + '/',
99
        },
100
        resolve: {
101
            alias: {
102
                'vue$': 'vue/dist/vue.js'
103
            }
104
        },
105
        mode: 'development',
106
        devtool: 'inline-source-map',
107
        optimization: configureOptimization(),
108
        devServer: configureDevServer(),
109
        module: {
110
            rules: [
111
                configurePostcssLoader(),
112
                configureImageLoader(),
113
            ],
114
        },
115
        plugins: [
116
            new webpack.HotModuleReplacementPlugin(),
117
            new DashboardPlugin(),
118
        ],
119
    }
120
);
121