manifest.config.ts 12 KB

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