uni.plugin.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. if (platform === 'app' && process.env.UNI_APP_X === 'true') {
  32. // app-webview,不增加 initAutomator
  33. if (process.env.UNI_AUTOMATOR_APP_WEBVIEW === 'true') {
  34. return null;
  35. }
  36. const automatorPath = (0, uni_cli_shared_1.normalizePath)((0, uni_cli_shared_1.resolveBuiltIn)(`@dcloudio/uni-app-uts/lib/automator/index.uts`));
  37. return {
  38. code:
  39. // 增加个换行,避免最后是注释且无换行
  40. code + `;\nimport { initAutomator } from '${automatorPath}';`,
  41. map: null,
  42. };
  43. }
  44. const automatorPath = (0, uni_cli_shared_1.normalizePath)((0, uni_cli_shared_1.resolveBuiltIn)(`@dcloudio/uni-${platform === 'app' ? 'app-plus' : platform}/lib/automator.js`));
  45. return {
  46. code: code + `;\nimport '${automatorPath}';`,
  47. map: null,
  48. };
  49. }
  50. },
  51. };
  52. }),
  53. ];