manifest.config.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. import path from 'node:path'
  2. import process from 'node:process'
  3. // manifest.config.ts
  4. import { defineManifestConfig } from '@uni-helper/vite-plugin-uni-manifest'
  5. import { loadEnv } from 'vite'
  6. // 手动解析命令行参数获取 mode
  7. function getMode() {
  8. const args = process.argv.slice(2)
  9. const modeFlagIndex = args.findIndex(arg => arg === '--mode')
  10. return modeFlagIndex !== -1 ? args[modeFlagIndex + 1] : args[0] === 'build' ? 'production' : 'development' // 默认 development
  11. }
  12. // 获取环境变量的范例
  13. const env = loadEnv(getMode(), path.resolve(process.cwd(), 'env'))
  14. const {
  15. VITE_APP_TITLE,
  16. VITE_UNI_APPID,
  17. VITE_WX_APPID,
  18. VITE_APP_PUBLIC_BASE,
  19. VITE_FALLBACK_LOCALE, // 默认系统语言
  20. } = env
  21. export default defineManifestConfig({
  22. 'name': VITE_APP_TITLE,
  23. 'appid': VITE_UNI_APPID,
  24. 'description': '',
  25. 'versionName': '1.0.0',
  26. 'versionCode': '100',
  27. 'transformPx': false,
  28. 'locale': 'en', // 此app需默认英文
  29. 'h5': {
  30. router: {
  31. // base: VITE_APP_PUBLIC_BASE,
  32. },
  33. },
  34. /* 5+App特有相关 */
  35. 'app-plus': {
  36. usingComponents: true,
  37. nvueStyleCompiler: 'uni-app',
  38. compilerVersion: 3,
  39. compatible: {
  40. ignoreVersion: true,
  41. },
  42. splashscreen: {
  43. alwaysShowBeforeRender: true,
  44. waiting: true,
  45. autoclose: true,
  46. delay: 0,
  47. },
  48. /* 模块配置 */
  49. modules: {},
  50. /* 应用发布信息 */
  51. distribute: {
  52. /* android打包配置 */
  53. android: {
  54. minSdkVersion: 30,
  55. targetSdkVersion: 30,
  56. abiFilters: ['armeabi-v7a', 'arm64-v8a'],
  57. permissions: [
  58. '<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>',
  59. '<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>',
  60. '<uses-permission android:name="android.permission.VIBRATE"/>',
  61. '<uses-permission android:name="android.permission.READ_LOGS"/>',
  62. '<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>',
  63. '<uses-feature android:name="android.hardware.camera.autofocus"/>',
  64. '<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>',
  65. '<uses-permission android:name="android.permission.CAMERA"/>',
  66. '<uses-permission android:name="android.permission.GET_ACCOUNTS"/>',
  67. '<uses-permission android:name="android.permission.READ_PHONE_STATE"/>',
  68. '<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>',
  69. '<uses-permission android:name="android.permission.WAKE_LOCK"/>',
  70. '<uses-permission android:name="android.permission.FLASHLIGHT"/>',
  71. '<uses-feature android:name="android.hardware.camera"/>',
  72. '<uses-permission android:name="android.permission.WRITE_SETTINGS"/>',
  73. ],
  74. },
  75. /* ios打包配置 */
  76. ios: {},
  77. /* SDK配置 */
  78. sdkConfigs: {},
  79. /* 图标配置 */
  80. icons: {
  81. android: {
  82. hdpi: 'static/app/icons/72x72.png',
  83. xhdpi: 'static/app/icons/96x96.png',
  84. xxhdpi: 'static/app/icons/144x144.png',
  85. xxxhdpi: 'static/app/icons/192x192.png',
  86. },
  87. ios: {
  88. appstore: 'static/app/icons/1024x1024.png',
  89. ipad: {
  90. 'app': 'static/app/icons/76x76.png',
  91. 'app@2x': 'static/app/icons/152x152.png',
  92. 'notification': 'static/app/icons/20x20.png',
  93. 'notification@2x': 'static/app/icons/40x40.png',
  94. 'proapp@2x': 'static/app/icons/167x167.png',
  95. 'settings': 'static/app/icons/29x29.png',
  96. 'settings@2x': 'static/app/icons/58x58.png',
  97. 'spotlight': 'static/app/icons/40x40.png',
  98. 'spotlight@2x': 'static/app/icons/80x80.png',
  99. },
  100. iphone: {
  101. 'app@2x': 'static/app/icons/120x120.png',
  102. 'app@3x': 'static/app/icons/180x180.png',
  103. 'notification@2x': 'static/app/icons/40x40.png',
  104. 'notification@3x': 'static/app/icons/60x60.png',
  105. 'settings@2x': 'static/app/icons/58x58.png',
  106. 'settings@3x': 'static/app/icons/87x87.png',
  107. 'spotlight@2x': 'static/app/icons/80x80.png',
  108. 'spotlight@3x': 'static/app/icons/120x120.png',
  109. },
  110. },
  111. },
  112. },
  113. },
  114. /* 快应用特有相关 */
  115. 'quickapp': {},
  116. /* 小程序特有相关 */
  117. 'mp-weixin': {
  118. appid: VITE_WX_APPID,
  119. setting: {
  120. urlCheck: false,
  121. // 是否启用 ES6 转 ES5
  122. es6: true,
  123. minified: true,
  124. },
  125. optimization: {
  126. subPackages: true,
  127. },
  128. usingComponents: true,
  129. // __usePrivacyCheck__: true,
  130. },
  131. 'mp-alipay': {
  132. usingComponents: true,
  133. styleIsolation: 'shared',
  134. },
  135. 'mp-baidu': {
  136. usingComponents: true,
  137. },
  138. 'mp-toutiao': {
  139. usingComponents: true,
  140. },
  141. 'uniStatistics': {
  142. enable: false,
  143. },
  144. 'vueVersion': '3',
  145. })