1 | const merge = require('deepmerge');
|
2 |
|
3 | module.exports = (neutrino, options = {}) => {
|
4 | const isBuild = neutrino.options.command === 'build';
|
5 | const urlLoader = require.resolve('url-loader');
|
6 | const { limit, name } = merge({
|
7 | limit: 8192,
|
8 | name: isBuild ? '[name].[hash].[ext]' : '[name].[ext]'
|
9 | }, options);
|
10 |
|
11 | neutrino.config.module
|
12 | .rule('svg')
|
13 | .test(/\.svg(\?v=\d+\.\d+\.\d+)?$/)
|
14 | .use('url')
|
15 | .loader(urlLoader)
|
16 | .options(merge({ limit, name }, options.svg || {}));
|
17 |
|
18 | neutrino.config.module
|
19 | .rule('img')
|
20 | .test(/\.(png|jpg|jpeg|gif|webp)(\?v=\d+\.\d+\.\d+)?$/)
|
21 | .use('url')
|
22 | .loader(urlLoader)
|
23 | .options(merge({ limit, name }, options.img || {}));
|
24 |
|
25 | neutrino.config.module
|
26 | .rule('ico')
|
27 | .test(/\.ico(\?v=\d+\.\d+\.\d+)?$/)
|
28 | .use('url')
|
29 | .loader(urlLoader)
|
30 | .options(merge({ limit, name }, options.ico || {}));
|
31 | };
|