uni.plugin.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. const fs_extra_1 = __importDefault(require("fs-extra"));
  7. const path_1 = __importDefault(require("path"));
  8. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  9. exports.default = [
  10. (0, uni_cli_shared_1.defineUniMainJsPlugin)((opts) => {
  11. return {
  12. name: 'uni:automator',
  13. enforce: 'pre',
  14. configResolved() {
  15. if (!process.env.UNI_AUTOMATOR_WS_ENDPOINT) {
  16. return;
  17. }
  18. const pkg = JSON.parse(fs_extra_1.default.readFileSync(path_1.default.resolve(__dirname, '../package.json'), 'utf8'));
  19. const automatorJson = JSON.stringify({
  20. version: pkg.version,
  21. wsEndpoint: process.env.UNI_AUTOMATOR_WS_ENDPOINT,
  22. });
  23. fs_extra_1.default.outputFileSync(path_1.default.resolve(process.env.UNI_OUTPUT_DIR, '../.automator/' + (0, uni_cli_shared_1.getPlatformDir)() + '/.automator.json'), automatorJson);
  24. },
  25. transform(code, id) {
  26. if (!process.env.UNI_AUTOMATOR_WS_ENDPOINT) {
  27. return null;
  28. }
  29. if (opts.filter(id)) {
  30. const platform = process.env.UNI_PLATFORM;
  31. // 仅 app-android
  32. if (platform === 'app' && process.env.UNI_APP_X === 'true') {
  33. // app-webview,不增加 initAutomator
  34. if (process.env.UNI_AUTOMATOR_APP_WEBVIEW === 'true') {
  35. return null;
  36. }
  37. if (process.env.UNI_UTS_PLATFORM === 'app-android') {
  38. const automatorPath = (0, uni_cli_shared_1.normalizePath)((0, uni_cli_shared_1.resolveBuiltIn)(`@dcloudio/uni-app-uts/lib/automator/android/index.uts`));
  39. return {
  40. code:
  41. // 增加个换行,避免最后是注释且无换行
  42. code + `;\nimport { initAutomator } from '${automatorPath}';`,
  43. map: null,
  44. };
  45. }
  46. else if (process.env.UNI_UTS_PLATFORM === 'app-ios') {
  47. const automatorPath = (0, uni_cli_shared_1.normalizePath)((0, uni_cli_shared_1.resolveBuiltIn)(`@dcloudio/uni-app-uts/lib/automator/ios/automator.js`));
  48. return {
  49. code: code + `;\nimport '${automatorPath}';`,
  50. map: null,
  51. };
  52. }
  53. }
  54. const automatorPath = (0, uni_cli_shared_1.normalizePath)((0, uni_cli_shared_1.resolveBuiltIn)(`@dcloudio/uni-${platform === 'app' ? 'app-plus' : platform}/lib/automator.js`));
  55. return {
  56. code: code + `;\nimport '${automatorPath}';`,
  57. map: null,
  58. };
  59. }
  60. },
  61. };
  62. }),
  63. ];