manifest.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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.getPlatformManifestJsonOnce = exports.getDevServerOptions = exports.isEnableTreeShaking = exports.getRouterOptions = exports.isUniPushOffline = exports.hasPushModule = exports.isEnableSecureNetwork = exports.isEnableUniPushV2 = exports.isEnableUniPushV1 = exports.getUniStatistics = exports.normalizeNetworkTimeout = exports.parseCompatConfigOnce = exports.parseRpx2UnitOnce = exports.parseManifestJsonOnce = exports.parseManifestJson = void 0;
  7. const fs_1 = __importDefault(require("fs"));
  8. const path_1 = __importDefault(require("path"));
  9. const shared_1 = require("@vue/shared");
  10. const uni_shared_1 = require("@dcloudio/uni-shared");
  11. const json_1 = require("./json");
  12. const parseManifestJson = (inputDir) => {
  13. return (0, json_1.parseJson)(fs_1.default.readFileSync(path_1.default.join(inputDir, 'manifest.json'), 'utf8'));
  14. };
  15. exports.parseManifestJson = parseManifestJson;
  16. exports.parseManifestJsonOnce = (0, uni_shared_1.once)(exports.parseManifestJson);
  17. exports.parseRpx2UnitOnce = (0, uni_shared_1.once)((inputDir, platform = 'h5') => {
  18. const rpx2unit = platform === 'h5' || platform === 'app'
  19. ? uni_shared_1.defaultRpx2Unit
  20. : uni_shared_1.defaultMiniProgramRpx2Unit;
  21. const platformOptions = (0, exports.parseManifestJsonOnce)(inputDir)[platform];
  22. if (platformOptions && platformOptions.rpx) {
  23. return (0, shared_1.extend)({}, rpx2unit, platformOptions);
  24. }
  25. return (0, shared_1.extend)({}, rpx2unit);
  26. });
  27. function parseCompatConfig(_inputDir) {
  28. // 不支持 mode:2
  29. return { MODE: 3 }; //parseManifestJsonOnce(inputDir).compatConfig || {}
  30. }
  31. exports.parseCompatConfigOnce = (0, uni_shared_1.once)(parseCompatConfig);
  32. const defaultNetworkTimeout = {
  33. request: 60000,
  34. connectSocket: 60000,
  35. uploadFile: 60000,
  36. downloadFile: 60000,
  37. };
  38. function normalizeNetworkTimeout(networkTimeout) {
  39. return {
  40. ...defaultNetworkTimeout,
  41. ...networkTimeout,
  42. };
  43. }
  44. exports.normalizeNetworkTimeout = normalizeNetworkTimeout;
  45. function getUniStatistics(inputDir, platform) {
  46. const manifest = (0, exports.parseManifestJsonOnce)(inputDir);
  47. if (platform === 'app') {
  48. platform = 'app-plus';
  49. }
  50. return (0, shared_1.extend)({}, manifest.uniStatistics, manifest[platform] && manifest[platform].uniStatistics);
  51. }
  52. exports.getUniStatistics = getUniStatistics;
  53. function isEnableUniPushV1(inputDir, platform) {
  54. if (isEnableUniPushV2(inputDir, platform)) {
  55. return false;
  56. }
  57. const manifest = (0, exports.parseManifestJsonOnce)(inputDir);
  58. if (platform === 'app') {
  59. const push = manifest['app-plus']?.distribute?.sdkConfigs?.push;
  60. if (push && (0, shared_1.hasOwn)(push, 'unipush')) {
  61. return true;
  62. }
  63. }
  64. return false;
  65. }
  66. exports.isEnableUniPushV1 = isEnableUniPushV1;
  67. function isEnableUniPushV2(inputDir, platform) {
  68. const manifest = (0, exports.parseManifestJsonOnce)(inputDir);
  69. if (platform === 'app') {
  70. return (manifest['app-plus']?.distribute?.sdkConfigs?.push?.unipush?.version ==
  71. '2');
  72. }
  73. return manifest[platform]?.unipush?.enable === true;
  74. }
  75. exports.isEnableUniPushV2 = isEnableUniPushV2;
  76. function isEnableSecureNetwork(inputDir, platform) {
  77. const manifest = (0, exports.parseManifestJsonOnce)(inputDir);
  78. if (platform === 'app') {
  79. return !!manifest['app-plus']?.modules?.SecureNetwork;
  80. }
  81. return manifest[platform]?.secureNetwork?.enable === true;
  82. }
  83. exports.isEnableSecureNetwork = isEnableSecureNetwork;
  84. function hasPushModule(inputDir) {
  85. const manifest = (0, exports.parseManifestJsonOnce)(inputDir);
  86. return !!manifest['app-plus']?.modules?.Push;
  87. }
  88. exports.hasPushModule = hasPushModule;
  89. function isUniPushOffline(inputDir) {
  90. const manifest = (0, exports.parseManifestJsonOnce)(inputDir);
  91. return (manifest['app-plus']?.distribute?.sdkConfigs?.push?.unipush?.offline ===
  92. true);
  93. }
  94. exports.isUniPushOffline = isUniPushOffline;
  95. function getRouterOptions(manifestJson) {
  96. return (0, shared_1.extend)({}, manifestJson.h5?.router);
  97. }
  98. exports.getRouterOptions = getRouterOptions;
  99. function isEnableTreeShaking(manifestJson) {
  100. // 自动化测试时,一定不摇树
  101. if (process.env.UNI_AUTOMATOR_WS_ENDPOINT) {
  102. return false;
  103. }
  104. return manifestJson.h5?.optimization?.treeShaking?.enable !== false;
  105. }
  106. exports.isEnableTreeShaking = isEnableTreeShaking;
  107. function getDevServerOptions(manifestJson) {
  108. return (0, shared_1.extend)({}, manifestJson.h5?.devServer);
  109. }
  110. exports.getDevServerOptions = getDevServerOptions;
  111. function getPlatformManifestJsonOnce() {
  112. const platform = process.env.UNI_PLATFORM === 'app' ? 'app-plus' : process.env.UNI_PLATFORM;
  113. return !process.env.UNI_INPUT_DIR
  114. ? {}
  115. : (0, exports.parseManifestJsonOnce)(process.env.UNI_INPUT_DIR)[platform] || {};
  116. }
  117. exports.getPlatformManifestJsonOnce = getPlatformManifestJsonOnce;