manifestJson.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.uniManifestJsonPlugin = void 0;
  4. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  5. const defaultRouter = {
  6. mode: 'hash',
  7. base: '/',
  8. assets: 'assets',
  9. routerBase: '/',
  10. };
  11. const defaultAsync = {
  12. loading: 'AsyncLoading',
  13. error: 'AsyncError',
  14. delay: 200,
  15. timeout: 60000,
  16. suspensible: true,
  17. };
  18. function uniManifestJsonPlugin() {
  19. return (0, uni_cli_shared_1.defineUniManifestJsonPlugin)((opts) => {
  20. let resolvedConfig;
  21. return {
  22. name: 'uni:h5-manifest-json',
  23. enforce: 'pre',
  24. configResolved(config) {
  25. defaultRouter.assets = config.build.assetsDir;
  26. resolvedConfig = config;
  27. },
  28. transform(code, id) {
  29. if (!opts.filter(id)) {
  30. return;
  31. }
  32. const manifest = (0, uni_cli_shared_1.parseJson)(code);
  33. const { debug, h5 } = manifest;
  34. const router = {
  35. ...defaultRouter,
  36. ...{ base: resolvedConfig.base },
  37. ...((h5 && h5.router) || {}),
  38. };
  39. if (!router.base) {
  40. router.base = '/';
  41. }
  42. /**
  43. * ssr时base和访问域名不一致导致跳到错误链接,其实应该区分server和client的部署路径,后续有需求可以加上
  44. */
  45. router.routerBase = new URL(router.base, 'http://localhost').pathname;
  46. const async = { ...defaultAsync, ...((h5 && h5.async) || {}) };
  47. const networkTimeout = (0, uni_cli_shared_1.normalizeNetworkTimeout)(manifest.networkTimeout);
  48. const sdkConfigs = (h5 && h5.sdkConfigs) || {};
  49. const qqMapKey = sdkConfigs.maps && sdkConfigs.maps.qqmap && sdkConfigs.maps.qqmap.key;
  50. const bMapKey = sdkConfigs.maps && sdkConfigs.maps.bmap && sdkConfigs.maps.bmap.key;
  51. const googleMapKey = sdkConfigs.maps &&
  52. sdkConfigs.maps.google &&
  53. sdkConfigs.maps.google.key;
  54. const aMapKey = sdkConfigs.maps && sdkConfigs.maps.amap && sdkConfigs.maps.amap.key;
  55. const aMapSecurityJsCode = sdkConfigs.maps &&
  56. sdkConfigs.maps.amap &&
  57. sdkConfigs.maps.amap.securityJsCode;
  58. const aMapServiceHost = sdkConfigs.maps &&
  59. sdkConfigs.maps.amap &&
  60. sdkConfigs.maps.amap.serviceHost;
  61. let locale = manifest.locale;
  62. locale = locale && locale.toUpperCase() !== 'AUTO' ? locale : '';
  63. const i18nOptions = (0, uni_cli_shared_1.initI18nOptions)(process.env.UNI_PLATFORM, process.env.UNI_INPUT_DIR, false, false);
  64. const fallbackLocale = (i18nOptions && i18nOptions.locale) || '';
  65. const vueType = process.env.UNI_APP_X === 'true' ? 'uvue' : 'nvue';
  66. const flexDirection = (process.env.UNI_APP_X === 'true'
  67. ? manifest['uni-app-x'] && manifest['uni-app-x']['flex-direction']
  68. : manifest['app'] &&
  69. manifest['app'].nvue &&
  70. manifest['app'].nvue['flex-direction']) || 'column';
  71. const platformConfig = manifest[process.env.UNI_PLATFORM === 'app'
  72. ? 'app-plus'
  73. : process.env.UNI_PLATFORM] || {};
  74. return {
  75. code: `export const appId = ${JSON.stringify(manifest.appid || '')}
  76. export const appName = ${JSON.stringify(manifest.name || '')}
  77. export const appVersion = ${JSON.stringify(manifest.versionName || '')}
  78. export const appVersionCode = ${JSON.stringify(manifest.versionCode || '')}
  79. export const debug = ${!!debug}
  80. export const ${vueType} = ${JSON.stringify({
  81. 'flex-direction': flexDirection,
  82. })}
  83. export const networkTimeout = ${JSON.stringify(networkTimeout)}
  84. // h5
  85. export const router = ${JSON.stringify(router)}
  86. export const async = ${JSON.stringify(async)}
  87. export const qqMapKey = ${JSON.stringify(qqMapKey)}
  88. export const bMapKey = ${JSON.stringify(bMapKey)}
  89. export const googleMapKey = ${JSON.stringify(googleMapKey)}
  90. export const aMapKey = ${JSON.stringify(aMapKey)}
  91. export const aMapSecurityJsCode = ${JSON.stringify(aMapSecurityJsCode)}
  92. export const aMapServiceHost = ${JSON.stringify(aMapServiceHost)}
  93. export const sdkConfigs = ${JSON.stringify(sdkConfigs)}
  94. export const locale = '${locale}'
  95. export const fallbackLocale = '${fallbackLocale}'
  96. export const darkmode = ${platformConfig.darkmode || 'false'}
  97. export const themeConfig = ${JSON.stringify((0, uni_cli_shared_1.normalizeThemeConfigOnce)(platformConfig))}
  98. `,
  99. map: { mappings: '' },
  100. };
  101. },
  102. };
  103. });
  104. }
  105. exports.uniManifestJsonPlugin = uniManifestJsonPlugin;