resolve.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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.createResolve = exports.customResolver = void 0;
  7. const path_1 = __importDefault(require("path"));
  8. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  9. function resolveUTSModuleProxyFile(id, importer) {
  10. const file = (0, uni_cli_shared_1.resolveUTSAppModule)(id, importer);
  11. if (file) {
  12. return file + '?uts-proxy';
  13. }
  14. }
  15. const customResolver = (updatedId, importer) => {
  16. const utsImporter = importer
  17. ? path_1.default.dirname(importer)
  18. : process.env.UNI_INPUT_DIR;
  19. const utsModuleFile = process.env.UNI_PLATFORM === 'app'
  20. ? resolveUTSModuleProxyFile(updatedId, utsImporter)
  21. : (0, uni_cli_shared_1.resolveUTSModule)(updatedId, utsImporter);
  22. if (utsModuleFile) {
  23. return uni_cli_shared_1.isWindows ? (0, uni_cli_shared_1.normalizePath)(utsModuleFile) : utsModuleFile;
  24. }
  25. if (uni_cli_shared_1.isWindows) {
  26. return (0, uni_cli_shared_1.normalizePath)((0, uni_cli_shared_1.requireResolve)(updatedId, importer || process.env.UNI_INPUT_DIR));
  27. }
  28. return (0, uni_cli_shared_1.requireResolve)(updatedId, importer || process.env.UNI_INPUT_DIR);
  29. };
  30. exports.customResolver = customResolver;
  31. function createResolve(options, _config) {
  32. const alias = process.env.UNI_APP_X === 'true'
  33. ? [
  34. {
  35. find: 'tslib',
  36. replacement: '\0tslib.js',
  37. },
  38. ]
  39. : [];
  40. return {
  41. // 必须使用alias解析,插件定制的resolveId,不会被应用到css等预处理器中
  42. alias: [
  43. // @ts-ignore because @rollup/plugin-alias' type doesn't allow function
  44. // replacement, but its implementation does work with function values.
  45. {
  46. find: /^(~@|@)\/(.*)/,
  47. replacement(_str, _$1, $2) {
  48. return (0, uni_cli_shared_1.normalizePath)(path_1.default.resolve(options.inputDir, $2));
  49. },
  50. customResolver: exports.customResolver,
  51. },
  52. ...alias,
  53. ],
  54. extensions: process.env.UNI_APP_X === 'true' ? uni_cli_shared_1.uni_app_x_extensions : uni_cli_shared_1.extensions,
  55. };
  56. }
  57. exports.createResolve = createResolve;