manifest.config.ts 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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. VITE_LAZY_CODE_LOADING
  21. } = env
  22. // console.log('manifest.config.ts env:', env)
  23. export default defineManifestConfig({
  24. 'name': VITE_APP_TITLE,
  25. 'appid': VITE_UNI_APPID,
  26. 'description': '',
  27. 'versionName': '1.0.0',
  28. 'versionCode': '100',
  29. 'transformPx': false,
  30. 'locale': VITE_FALLBACK_LOCALE, // 'zh-Hans'
  31. 'h5': {
  32. router: {
  33. base: VITE_APP_PUBLIC_BASE,
  34. },
  35. },
  36. /* 5+App特有相关 */
  37. 'app-plus': {
  38. usingComponents: true,
  39. nvueStyleCompiler: 'uni-app',
  40. compilerVersion: 3,
  41. compatible: {
  42. ignoreVersion: true,
  43. },
  44. splashscreen: {
  45. alwaysShowBeforeRender: true,
  46. waiting: true,
  47. autoclose: true,
  48. delay: 0,
  49. },
  50. /* 模块配置 */
  51. modules: {},
  52. /* 应用发布信息 */
  53. distribute: {
  54. /* android打包配置 */
  55. android: {
  56. minSdkVersion: 21,
  57. targetSdkVersion: 30,
  58. abiFilters: ['armeabi-v7a', 'arm64-v8a'],
  59. permissions: [
  60. '<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>',
  61. '<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>',
  62. '<uses-permission android:name="android.permission.VIBRATE"/>',
  63. '<uses-permission android:name="android.permission.READ_LOGS"/>',
  64. '<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>',
  65. '<uses-feature android:name="android.hardware.camera.autofocus"/>',
  66. '<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>',
  67. '<uses-permission android:name="android.permission.CAMERA"/>',
  68. '<uses-permission android:name="android.permission.GET_ACCOUNTS"/>',
  69. '<uses-permission android:name="android.permission.READ_PHONE_STATE"/>',
  70. '<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>',
  71. '<uses-permission android:name="android.permission.WAKE_LOCK"/>',
  72. '<uses-permission android:name="android.permission.FLASHLIGHT"/>',
  73. '<uses-feature android:name="android.hardware.camera"/>',
  74. '<uses-permission android:name="android.permission.WRITE_SETTINGS"/>',
  75. ],
  76. },
  77. /* ios打包配置 */
  78. ios: {},
  79. /* SDK配置 */
  80. sdkConfigs: {},
  81. /* 图标配置 */
  82. icons: {
  83. android: {
  84. hdpi: 'static/app/icons/72x72.png',
  85. xhdpi: 'static/app/icons/96x96.png',
  86. xxhdpi: 'static/app/icons/144x144.png',
  87. xxxhdpi: 'static/app/icons/192x192.png',
  88. },
  89. ios: {
  90. appstore: 'static/app/icons/1024x1024.png',
  91. ipad: {
  92. 'app': 'static/app/icons/76x76.png',
  93. 'app@2x': 'static/app/icons/152x152.png',
  94. 'notification': 'static/app/icons/20x20.png',
  95. 'notification@2x': 'static/app/icons/40x40.png',
  96. 'proapp@2x': 'static/app/icons/167x167.png',
  97. 'settings': 'static/app/icons/29x29.png',
  98. 'settings@2x': 'static/app/icons/58x58.png',
  99. 'spotlight': 'static/app/icons/40x40.png',
  100. 'spotlight@2x': 'static/app/icons/80x80.png',
  101. },
  102. iphone: {
  103. 'app@2x': 'static/app/icons/120x120.png',
  104. 'app@3x': 'static/app/icons/180x180.png',
  105. 'notification@2x': 'static/app/icons/40x40.png',
  106. 'notification@3x': 'static/app/icons/60x60.png',
  107. 'settings@2x': 'static/app/icons/58x58.png',
  108. 'settings@3x': 'static/app/icons/87x87.png',
  109. 'spotlight@2x': 'static/app/icons/80x80.png',
  110. 'spotlight@3x': 'static/app/icons/120x120.png',
  111. },
  112. },
  113. },
  114. },
  115. },
  116. /* 快应用特有相关 */
  117. 'quickapp': {},
  118. /* 小程序特有相关 */
  119. 'mp-weixin': {
  120. appid: VITE_WX_APPID,
  121. setting: {
  122. urlCheck: false,
  123. // 是否启用 ES6 转 ES5
  124. es6: true,
  125. minified: true,
  126. },
  127. lazyCodeLoading: 'requiredComponents',
  128. optimization: {
  129. subPackages: true,
  130. },
  131. // 是否合并组件虚拟节点外层属性,uni-app 3.5.1+ 开始支持。目前仅支持 style、class 属性。
  132. // 默认不开启(undefined),这里设置为开启。
  133. mergeVirtualHostAttributes: true,
  134. // styleIsolation: 'shared',
  135. usingComponents: true,
  136. // __usePrivacyCheck__: true,
  137. },
  138. 'mp-alipay': {
  139. usingComponents: true,
  140. styleIsolation: 'shared',
  141. optimization: {
  142. subPackages: true,
  143. },
  144. // 解决支付宝小程序开发工具报错 【globalThis is not defined】
  145. compileOptions: {
  146. globalObjectMode: 'enable',
  147. transpile: {
  148. script: {
  149. ignore: ['node_modules/**'],
  150. },
  151. },
  152. },
  153. },
  154. 'mp-baidu': {
  155. usingComponents: true,
  156. },
  157. 'mp-toutiao': {
  158. usingComponents: true,
  159. },
  160. 'uniStatistics': {
  161. enable: false,
  162. },
  163. 'vueVersion': '3',
  164. })