zhangjian
2023-06-05 0976d2d0f90cff460cedfdc8bd74e98c2c31a58c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* eslint-disable max-len */
const fs = require('fs');
const PACKAGE_NAME = require('../package.json').name;
 
module.exports = {
  PACKAGE_NAME,
  NAMESPACE: fs.realpathSync(__dirname),
  EXTRACTABLE_MODULE_ISSUER_PATTERN: /\.(css|sass|scss|less|styl|html)$/i,
  SPRITE_PLACEHOLDER_PATTERN: /\{\{sprite-filename\|([^}}]*)\}\};?/gi,
 
  /**
   * Overridable loader options
   * @typedef {Object} SVGSpriteLoaderConfig
   */
  loader: {
    /**
     * How `<symbol id>` should be named.
     * Full list of supported patterns see at [loader-utils#interpolatename docs](https://github.com/webpack/loader-utils#interpolatename).
     * @type {string}
     */
    symbolId: '[name]',
 
    /**
     * Regular expression passed to interpolateName.
     * Supports the interpolateName [N] pattern inserting the N-th match.
     * @type {string}
     */
    symbolRegExp: '',
 
    /**
     * Path to Node.js module which generates client runtime.
     * @type {string}
     */
    runtimeGenerator: require.resolve('./runtime-generator'),
 
    /**
     * Arbitrary data passed to runtime generator.
     * @type {*}
     */
    runtimeOptions: undefined,
 
    /**
     * Should runtime be compatible with earlier v0.* loader versions.
     * Will be removed in 3 version.
     * @type {boolean}
     * @deprecated
     */
    runtimeCompat: false,
 
    /**
     * Path to sprite module which will be compiled and executed at runtime.
     * By default depends on 'target' webpack config option:
     * - `svg-sprite-loader/runtime/browser-sprite.build` for 'web' target.
     * - `svg-sprite-loader/runtime/sprite.build` for all other targets.
     * @type {string}
     * @autoconfigured
     */
    spriteModule: require.resolve('../runtime/browser-sprite.build'),
 
    /**
     * Path to symbol module.
     * By default depends on 'target' webpack config option:
     * - `svg-baker-runtime/browser-symbol` for 'web' target.
     * - `svg-baker-runtime/symbol` for all other targets.
     * @type {string}
     * @autoconfigured
     */
    symbolModule: require.resolve('svg-baker-runtime/browser-symbol'),
 
    /**
     * Generated export format:
     * - when `true` loader will produce `export default ...`.
     * - when `false` the result is `module.exports = ...`.
     * By default depends on used webpack version. `true` for Webpack >= 2, `false` otherwise.
     * @type {boolean}
     * @autoconfigured
     */
    esModule: true,
 
    /**
     * Turns loader in extract mode.
     * Enables automatically if SVG image was imported from css/scss/sass/less/styl/html.
     * @type {boolean}
     * @autoconfigured
     */
    extract: false,
 
    /**
     * Filename for generated sprite. `[chunkname]` placeholder can be used.
     * @type {string}
     */
    spriteFilename: 'sprite.svg'
  }
};