1 | const merge = require('deepmerge');
|
2 | const defaults = require('./config');
|
3 | const utils = require('./utils');
|
4 |
|
5 | const loaderDefaults = defaults.loader;
|
6 | const isomorphicSpriteModule = require.resolve('../runtime/sprite.build');
|
7 | const isomorphicSymbolModule = require.resolve('svg-baker-runtime/symbol');
|
8 |
|
9 | const isTargetBrowser = target => target === 'web' || target === 'electron-renderer';
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | module.exports = function configurator({ config, context, target }) {
|
18 | const module = context._module;
|
19 | const compiler = context._compiler;
|
20 | const compilerName = compiler.name;
|
21 |
|
22 | const autoConfigured = {
|
23 | spriteModule: isTargetBrowser(target) ? loaderDefaults.spriteModule : isomorphicSpriteModule,
|
24 | symbolModule: isTargetBrowser(target) ? loaderDefaults.symbolModule : isomorphicSymbolModule,
|
25 | extract: utils.isModuleShouldBeExtracted(module),
|
26 | esModule: context.version && context.version >= 2
|
27 | };
|
28 |
|
29 | const finalConfig = merge.all([loaderDefaults, autoConfigured, config || {}]);
|
30 |
|
31 | |
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | if (compilerName && (
|
39 | compilerName.includes('extract-text-webpack-plugin') ||
|
40 | compilerName.includes('html-webpack-plugin')
|
41 | )) {
|
42 | finalConfig.esModule = false;
|
43 | }
|
44 |
|
45 | return finalConfig;
|
46 | };
|