项目原始demo,不改动
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
Questo repository è archiviato. Puoi vedere i file e clonarli, ma non puoi effettuare richieste di pushj o aprire problemi/richieste di pull.
 
 
 
 

37 righe
736 B

  1. module.exports = function createResolver(alias) {
  2. if(typeof alias !== "object" || Array.isArray(alias)) {
  3. return function(url) {
  4. return url
  5. };
  6. }
  7. alias = Object.keys(alias).map(function(key) {
  8. var onlyModule = false;
  9. var obj = alias[key];
  10. if(/\$$/.test(key)) {
  11. onlyModule = true;
  12. key = key.substr(0, key.length - 1);
  13. }
  14. if(typeof obj === "string") {
  15. obj = {
  16. alias: obj
  17. };
  18. }
  19. obj = Object.assign({
  20. name: key,
  21. onlyModule: onlyModule
  22. }, obj);
  23. return obj;
  24. });
  25. return function(url) {
  26. alias.forEach(function(obj) {
  27. var name = obj.name;
  28. if(url === name || (!obj.onlyModule && url.startsWith(name + "/"))) {
  29. url = obj.alias + url.substr(name.length);
  30. }
  31. });
  32. return url;
  33. }
  34. }