manifest.config.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  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.4.8',
  26. 'versionCode': '148',
  27. 'transformPx': false,
  28. 'locale': VITE_FALLBACK_LOCALE === 'en' ? 'en' : 'bn', // 此app需默认孟加拉语
  29. 'fallbackLocale': 'bn',
  30. 'h5': {
  31. router: {
  32. base: VITE_APP_PUBLIC_BASE
  33. },
  34. uniStatistics: {
  35. enable: true
  36. }
  37. },
  38. /* 5+App特有相关 */
  39. 'app-plus': {
  40. // safearea: {
  41. // bottom: {
  42. // offset: 'none',
  43. // },
  44. // },
  45. screenOrientation: ['portrait-primary', 'portrait-secondary', 'landscape-primary', 'landscape-secondary'],
  46. usingComponents: true,
  47. nvueStyleCompiler: 'uni-app',
  48. compilerVersion: 3,
  49. compatible: {
  50. ignoreVersion: true
  51. },
  52. splashscreen: {
  53. alwaysShowBeforeRender: true,
  54. waiting: true,
  55. autoclose: true,
  56. delay: 0
  57. },
  58. /* 模块配置 */
  59. modules: {
  60. Share: {},
  61. Camera: {},
  62. Push: {}
  63. },
  64. /* 应用发布信息 */
  65. distribute: {
  66. /* android打包配置 */
  67. android: {
  68. minSdkVersion: 30,
  69. targetSdkVersion: 35,
  70. abiFilters: ['armeabi-v7a', 'arm64-v8a', 'x86'],
  71. permissions: [
  72. '<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>',
  73. '<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>',
  74. '<uses-permission android:name="android.permission.VIBRATE"/>',
  75. '<uses-permission android:name="android.permission.READ_LOGS"/>',
  76. '<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>',
  77. '<uses-feature android:name="android.hardware.camera.autofocus"/>',
  78. '<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>',
  79. '<uses-permission android:name="android.permission.CAMERA"/>',
  80. '<uses-permission android:name="android.permission.GET_ACCOUNTS"/>',
  81. '<uses-permission android:name="android.permission.READ_PHONE_STATE"/>',
  82. '<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>',
  83. '<uses-permission android:name="android.permission.WAKE_LOCK"/>',
  84. '<uses-permission android:name="android.permission.FLASHLIGHT"/>',
  85. '<uses-feature android:name="android.hardware.camera"/>',
  86. '<uses-permission android:name="android.permission.WRITE_SETTINGS"/>'
  87. ]
  88. },
  89. /* ios打包配置 */
  90. ios: {
  91. idfa: false
  92. },
  93. /* SDK配置 */
  94. sdkConfigs: {},
  95. /* 图标配置 */
  96. icons: {
  97. android: {
  98. hdpi: 'src/static/app/icons/72x72.png',
  99. xhdpi: 'src/static/app/icons/96x96.png',
  100. xxhdpi: 'src/static/app/icons/144x144.png',
  101. xxxhdpi: 'src/static/app/icons/192x192.png'
  102. },
  103. ios: {
  104. appstore: 'src/static/app/icons/1024x1024.png',
  105. ipad: {
  106. 'app': 'src/static/app/icons/76x76.png',
  107. 'app@2x': 'src/static/app/icons/152x152.png',
  108. 'notification': 'src/static/app/icons/20x20.png',
  109. 'notification@2x': 'src/static/app/icons/40x40.png',
  110. 'proapp@2x': 'src/static/app/icons/167x167.png',
  111. 'settings': 'src/static/app/icons/29x29.png',
  112. 'settings@2x': 'src/static/app/icons/58x58.png',
  113. 'spotlight': 'src/static/app/icons/40x40.png',
  114. 'spotlight@2x': 'src/static/app/icons/80x80.png'
  115. },
  116. iphone: {
  117. 'app@2x': 'src/static/app/icons/120x120.png',
  118. 'app@3x': 'src/static/app/icons/180x180.png',
  119. 'notification@2x': 'src/static/app/icons/40x40.png',
  120. 'notification@3x': 'src/static/app/icons/60x60.png',
  121. 'settings@2x': 'src/static/app/icons/58x58.png',
  122. 'settings@3x': 'src/static/app/icons/87x87.png',
  123. 'spotlight@2x': 'src/static/app/icons/80x80.png',
  124. 'spotlight@3x': 'src/static/app/icons/120x120.png'
  125. }
  126. }
  127. },
  128. splashscreen: {
  129. androidStyle: 'common',
  130. android: {
  131. hdpi: 'src/static/app/start/start-480.png',
  132. xhdpi: 'src/static/app/start/start-720.png',
  133. xxhdpi: 'src/static/app/start/start-1080.png'
  134. }
  135. }
  136. },
  137. uniStatistics: {
  138. enable: true
  139. },
  140. plugins: {
  141. 'EL-MTPush': {
  142. version: "1.1.6",
  143. provider: "10093"
  144. }
  145. },
  146. nativePlugins: {
  147. 'EL-MTPush': {
  148. MTPUSH_APPKEY_IOS: '',
  149. MTPUSH_CHANNEL_IOS: '',
  150. MTPUSH_ISPRODUCTION_IOS: '',
  151. MTPUSH_ADVERTISINGID_IOS: '',
  152. MTPUSH_DEFAULTINIT_IOS: '',
  153. // 正式环境key
  154. MTPUSH_APPKEY_ANDROID: '0655e889f95b4325a6712905',
  155. // 测试环境key
  156. // MTPUSH_APPKEY_ANDROID: '0655e889f95b4325a6712905',
  157. MTPUSH_CHANNEL_ANDROID: '',
  158. MTPUSH_PROCESS_ANDROID: '',
  159. MTPUSH_XIAOMI_APPKEY: '',
  160. MTPUSH_XIAOMI_APPID: '',
  161. MTPUSH_MEIZU_APPKEY: '',
  162. MTPUSH_MEIZU_APPID: '',
  163. MTPUSH_OPPO_APPKEY: '',
  164. MTPUSH_OPPO_APPID: '',
  165. MTPUSH_OPPO_APPSECRET: '',
  166. MTPUSH_VIVO_APPKEY: '',
  167. MTPUSH_VIVO_APPID: '',
  168. MTPUSH_HONOR_APPID: '',
  169. MTPUSH_HUAWEI_APPID: '',
  170. MTPUSH_GOOGLE_API_KEY: '',
  171. MTPUSH_GOOGLE_APP_ID: '',
  172. MTPUSH_GOOGLE_PROJECT_NUMBER: '',
  173. MTPUSH_GOOGLE_PROJECT_ID: '',
  174. MTPUSH_GOOGLE_STORAGE_BUCKET: '',
  175. __plugin_info__: {
  176. name: 'EL-MTPush',
  177. description: 'EngageLab Hbuilder plugin',
  178. platforms: 'Android,iOS',
  179. url: '',
  180. android_package_name: '',
  181. ios_bundle_id: '',
  182. isCloud: false,
  183. bought: -1,
  184. pid: '',
  185. parameters: {
  186. MTPUSH_APPKEY_IOS: {
  187. des: '[iOS]EngageLab portal配置应用信息时分配的AppKey',
  188. key: 'MTPush:APP_KEY',
  189. value: ''
  190. },
  191. MTPUSH_CHANNEL_IOS: {
  192. des: '[iOS]用于统计分发渠道,不需要可填默认值developer-default',
  193. key: 'MTPush:CHANNEL',
  194. value: ''
  195. },
  196. MTPUSH_ISPRODUCTION_IOS: {
  197. des: '[iOS]是否是生产环境,是填true,不是填false或者不填',
  198. key: 'MTPush:ISPRODUCTION',
  199. value: ''
  200. },
  201. MTPUSH_ADVERTISINGID_IOS: {
  202. des: '[iOS]广告标识符(IDFA)如果不需要使用IDFA,可不填',
  203. key: 'MTPush:ADVERTISINGID',
  204. value: ''
  205. },
  206. MTPUSH_DEFAULTINIT_IOS: {
  207. des: '[iOS]是否默认初始化,是填true,不是填false或者不填',
  208. key: 'MTPush:DEFAULTINIT',
  209. value: ''
  210. },
  211. MTPUSH_APPKEY_ANDROID: {
  212. des: '[Android]EngageLab portal配置应用信息时分配的AppKey',
  213. key: '',
  214. value: ''
  215. },
  216. MTPUSH_CHANNEL_ANDROID: {
  217. des: '[Android]用于统计分发渠道,不需要可填默认值developer-default',
  218. key: '',
  219. value: ''
  220. },
  221. MTPUSH_PROCESS_ANDROID: {
  222. des: "[Android] Engagelab process,Engagelabsdk工作所在的进程,请填写 ':remote', 注意:开头",
  223. key: '',
  224. value: ''
  225. },
  226. MTPUSH_XIAOMI_APPKEY: {
  227. des: '厂商XIAOMI-appKey,示例:MI-12345678',
  228. key: '',
  229. value: ''
  230. },
  231. MTPUSH_XIAOMI_APPID: {
  232. des: '厂商XIAOMI-appId,示例:MI-12345678',
  233. key: '',
  234. value: ''
  235. },
  236. MTPUSH_MEIZU_APPKEY: {
  237. des: '厂商MEIZU-appKey,示例:MZ-12345678',
  238. key: '',
  239. value: ''
  240. },
  241. MTPUSH_MEIZU_APPID: {
  242. des: '厂商MEIZU-appId,示例:MZ-12345678',
  243. key: '',
  244. value: ''
  245. },
  246. MTPUSH_OPPO_APPKEY: {
  247. des: '厂商OPPO-appkey,示例:OP-12345678',
  248. key: '',
  249. value: ''
  250. },
  251. MTPUSH_OPPO_APPID: {
  252. des: '厂商OPPO-appId,示例:OP-12345678',
  253. key: '',
  254. value: ''
  255. },
  256. MTPUSH_OPPO_APPSECRET: {
  257. des: '厂商OPPO-appSecret,示例:OP-12345678',
  258. key: '',
  259. value: ''
  260. },
  261. MTPUSH_VIVO_APPKEY: {
  262. des: '厂商VIVO-appkey,示例:12345678',
  263. key: '',
  264. value: ''
  265. },
  266. MTPUSH_VIVO_APPID: {
  267. des: '厂商VIVO-appId,示例:12345678',
  268. key: '',
  269. value: ''
  270. },
  271. MTPUSH_HONOR_APPID: {
  272. des: '厂商HONOR-appId,示例:12345678',
  273. key: '',
  274. value: ''
  275. },
  276. MTPUSH_HUAWEI_APPID: {
  277. des: '厂商HUAWEI-appId,示例:appid=12346578',
  278. key: 'com.huawei.hms.client.appid',
  279. value: ''
  280. },
  281. MTPUSH_GOOGLE_API_KEY: {
  282. des: '厂商google api_key,示例:G-asxa1232',
  283. key: 'google_api_key',
  284. value: ''
  285. },
  286. MTPUSH_GOOGLE_APP_ID: {
  287. des: '厂商google mobilesdk_app_id,示例:G-12346578',
  288. key: 'google_app_id',
  289. value: ''
  290. },
  291. MTPUSH_GOOGLE_PROJECT_NUMBER: {
  292. des: '厂商google project_number,示例:G-12346578',
  293. key: 'gcm_defaultSenderId',
  294. value: ''
  295. },
  296. MTPUSH_GOOGLE_PROJECT_ID: {
  297. des: '厂商google project_id ,示例:G-12346578',
  298. key: 'project_id',
  299. value: ''
  300. },
  301. MTPUSH_GOOGLE_STORAGE_BUCKET: {
  302. des: '厂商google storage_bucket,示例:G-12346578',
  303. key: 'google_storage_bucket',
  304. value: ''
  305. }
  306. }
  307. }
  308. }
  309. }
  310. },
  311. /* 快应用特有相关 */
  312. 'quickapp': {
  313. uniStatistics: {
  314. enable: false
  315. }
  316. },
  317. /* 小程序特有相关 */
  318. 'mp-weixin': {
  319. appid: VITE_WX_APPID,
  320. setting: {
  321. urlCheck: false,
  322. // 是否启用 ES6 转 ES5
  323. es6: true,
  324. minified: true
  325. },
  326. optimization: {
  327. subPackages: true
  328. },
  329. usingComponents: true,
  330. uniStatistics: {
  331. enable: false
  332. }
  333. // __usePrivacyCheck__: true,
  334. },
  335. 'mp-alipay': {
  336. usingComponents: true,
  337. styleIsolation: 'shared',
  338. uniStatistics: {
  339. enable: false
  340. }
  341. },
  342. 'mp-baidu': {
  343. usingComponents: true,
  344. uniStatistics: {
  345. enable: false
  346. }
  347. },
  348. 'mp-toutiao': {
  349. usingComponents: true,
  350. uniStatistics: {
  351. enable: false
  352. }
  353. },
  354. 'app-harmony': {
  355. uniStatistics: {
  356. enable: false
  357. }
  358. },
  359. 'mp-harmony': {
  360. uniStatistics: {
  361. enable: false
  362. }
  363. },
  364. 'mp-jd': {
  365. uniStatistics: {
  366. enable: false
  367. }
  368. },
  369. 'mp-kuaishou': {
  370. uniStatistics: {
  371. enable: false
  372. }
  373. },
  374. 'mp-lark': {
  375. uniStatistics: {
  376. enable: false
  377. }
  378. },
  379. 'mp-qq': {
  380. uniStatistics: {
  381. enable: false
  382. }
  383. },
  384. 'mp-xhs': {
  385. uniStatistics: {
  386. enable: false
  387. }
  388. },
  389. 'uniStatistics': {
  390. enable: false, // 全局开启
  391. version: '2' // 开启新版uni统计,值为字符串
  392. },
  393. 'vueVersion': '3'
  394. })