MES手机端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

48 строки
1.3 KiB

  1. "use strict";
  2. var interpolateName = require("loader-utils/lib/interpolateName");
  3. var path = require("path");
  4. /**
  5. * @param {string} pattern
  6. * @param {object} options
  7. * @param {string} options.context
  8. * @param {string} options.hashPrefix
  9. * @return {function}
  10. */
  11. module.exports = function createGenerator(pattern, options) {
  12. options = options || {};
  13. var context =
  14. options && typeof options.context === "string"
  15. ? options.context
  16. : process.cwd();
  17. var hashPrefix =
  18. options && typeof options.hashPrefix === "string" ? options.hashPrefix : "";
  19. /**
  20. * @param {string} localName Usually a class name
  21. * @param {string} filepath Absolute path
  22. * @return {string}
  23. */
  24. return function generate(localName, filepath) {
  25. var name = pattern.replace(/\[local\]/gi, localName);
  26. var loaderContext = {
  27. resourcePath: filepath,
  28. };
  29. var loaderOptions = {
  30. content:
  31. hashPrefix +
  32. path.relative(context, filepath).replace(/\\/g, "/") +
  33. "\x00" +
  34. localName,
  35. context: context,
  36. };
  37. var genericName = interpolateName(loaderContext, name, loaderOptions);
  38. return genericName
  39. .replace(new RegExp("[^a-zA-Z0-9\\-_\u00A0-\uFFFF]", "g"), "-")
  40. .replace(/^((-?[0-9])|--)/, "_$1");
  41. };
  42. };