config.js 2.7 KB

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