buildPluginResolve.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.createBuildResolvePlugin = void 0;
  7. const fs_extra_1 = __importDefault(require("fs-extra"));
  8. const resolveVue_1 = require("../utils/resolveVue");
  9. const utils_1 = require("../utils");
  10. const debug = require('debug')('vite:build:resolve');
  11. exports.createBuildResolvePlugin = (root, resolver) => {
  12. return {
  13. name: 'vite:resolve',
  14. async resolveId(id, importer) {
  15. const original = id;
  16. id = resolver.alias(id) || id;
  17. if (id === 'vue' || id.startsWith('@vue/')) {
  18. const vuePaths = resolveVue_1.resolveVue(root);
  19. if (id in vuePaths) {
  20. return vuePaths[id];
  21. }
  22. }
  23. if (utils_1.isExternalUrl(id)) {
  24. return { id, external: true };
  25. }
  26. if (id.startsWith('/') && !id.startsWith(root)) {
  27. const resolved = resolver.requestToFile(id);
  28. if (fs_extra_1.default.existsSync(resolved)) {
  29. debug(id, `-->`, resolved);
  30. return resolved;
  31. }
  32. }
  33. // fallback to node-resolve because alias
  34. if (id !== original) {
  35. const resolved = await this.resolve(id, importer, { skipSelf: true });
  36. return resolved || { id };
  37. }
  38. }
  39. };
  40. };
  41. //# sourceMappingURL=buildPluginResolve.js.map