UNPKG

2.42 kBJavaScriptView Raw
1const paths = require('../config/paths');
2
3module.exports = {
4 resolve: {
5 extensions: ['.js', '.json', '.jsx', '.less'],
6 alias: {
7 assets: paths.public,
8 }
9 },
10 module: {
11 rules: [
12 {
13 exclude: [
14 /\.(html|ejs)$/,
15 /\.(js|jsx)$/,
16 /\.(css|less)$/,
17 /\.json$/,
18 /\.svg$/,
19 /\.(ttf|eot|woff2?)$/,
20 /\.(png|jpe?g|gif)$/
21 ],
22 use: [{
23 loader: 'url-loader',
24 options: {
25 limit: 10000,
26 name: 'public/[name].[hash:8].[ext]'
27 }
28 }]
29 },
30 // Process JS with Babel.
31 {
32 test: /\.(js|jsx)$/,
33 include: paths.src,
34 use: [{
35 loader: 'babel-loader',
36 options: {
37 cacheDirectory: true
38 }
39 }]
40 },
41 // "postcss" loader applies autoprefixer to our CSS.
42 // "css" loader resolves paths in CSS and adds assets as dependencies.
43 // "style" loader turns CSS into JS modules that inject <style> tags.
44 // In production, we use a plugin to extract that CSS to a file, but
45 // in development "style" loader enables hot editing of CSS.
46 {
47 test: /\.css$/,
48 use: [
49 {
50 loader: 'style-loader',
51 },
52 {
53 loader: 'css-loader',
54 options: {
55 // importLoaders: 1,
56 sourceMap: true
57 }
58 },
59 {
60 loader: 'postcss-loader',
61 options: {
62 sourceMap: true
63 }
64 }
65 ]
66 },
67 {
68 test: /\.less$/,
69 use: [
70 {
71 loader: 'style-loader',
72 },
73 {
74 loader: 'css-loader',
75 options: {
76 importLoaders: 1,
77 modules: true,
78 sourceMap: true
79 }
80 },
81 {
82 loader: 'postcss-loader',
83 options: {
84 sourceMap: true
85 }
86 },
87 {
88 loader: 'less-loader',
89 options: {
90 sourceMap: true
91 }
92 }
93 ]
94 },
95 {
96 test: /\.(png|jpe?g|gif|ttf|eot|woff2?|svg)$/,
97 use: [{
98 loader: 'url-loader',
99 options: {
100 // limit: 1000,
101 name: '[hash:8].[ext]'
102 }
103 }]
104 },
105 ],
106 },
107};