import path from 'node:path'
import process from 'node:process'
// manifest.config.ts
import { defineManifestConfig } from '@uni-helper/vite-plugin-uni-manifest'
import { loadEnv } from 'vite'
// 手动解析命令行参数获取 mode
function getMode() {
const args = process.argv.slice(2)
const modeFlagIndex = args.findIndex(arg => arg === '--mode')
return modeFlagIndex !== -1 ? args[modeFlagIndex + 1] : args[0] === 'build' ? 'production' : 'development' // 默认 development
}
// 获取环境变量的范例
const env = loadEnv(getMode(), path.resolve(process.cwd(), 'env'))
const {
VITE_APP_TITLE,
VITE_UNI_APPID,
VITE_WX_APPID,
VITE_APP_PUBLIC_BASE,
VITE_FALLBACK_LOCALE, // 默认系统语言
} = env
export default defineManifestConfig({
'name': VITE_APP_TITLE,
'appid': VITE_UNI_APPID,
'description': '',
'versionName': '1.2.2',
'versionCode': '122',
'transformPx': false,
'locale': VITE_FALLBACK_LOCALE === 'bn' ? 'bn' : 'en', // 此app需默认英文
'fallbackLocale': 'en',
'h5': {
router: {
base: VITE_APP_PUBLIC_BASE,
},
uniStatistics: {
enable: false,
},
},
/* 5+App特有相关 */
'app-plus': {
usingComponents: true,
nvueStyleCompiler: 'uni-app',
compilerVersion: 3,
compatible: {
ignoreVersion: true,
},
splashscreen: {
alwaysShowBeforeRender: true,
waiting: true,
autoclose: true,
delay: 0,
},
/* 模块配置 */
modules: {
Share: {},
Camera: {},
Push: {},
},
/* 应用发布信息 */
distribute: {
/* android打包配置 */
android: {
minSdkVersion: 30,
targetSdkVersion: 30,
abiFilters: ['armeabi-v7a', 'arm64-v8a'],
permissions: [
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
],
},
/* ios打包配置 */
ios: {
idfa: false,
},
/* SDK配置 */
sdkConfigs: {},
/* 图标配置 */
icons: {
android: {
hdpi: 'src/static/app/icons/72x72.png',
xhdpi: 'src/static/app/icons/96x96.png',
xxhdpi: 'src/static/app/icons/144x144.png',
xxxhdpi: 'src/static/app/icons/192x192.png',
},
ios: {
appstore: 'src/static/app/icons/1024x1024.png',
ipad: {
'app': 'src/static/app/icons/76x76.png',
'app@2x': 'src/static/app/icons/152x152.png',
'notification': 'src/static/app/icons/20x20.png',
'notification@2x': 'src/static/app/icons/40x40.png',
'proapp@2x': 'src/static/app/icons/167x167.png',
'settings': 'src/static/app/icons/29x29.png',
'settings@2x': 'src/static/app/icons/58x58.png',
'spotlight': 'src/static/app/icons/40x40.png',
'spotlight@2x': 'src/static/app/icons/80x80.png',
},
iphone: {
'app@2x': 'src/static/app/icons/120x120.png',
'app@3x': 'src/static/app/icons/180x180.png',
'notification@2x': 'src/static/app/icons/40x40.png',
'notification@3x': 'src/static/app/icons/60x60.png',
'settings@2x': 'src/static/app/icons/58x58.png',
'settings@3x': 'src/static/app/icons/87x87.png',
'spotlight@2x': 'src/static/app/icons/80x80.png',
'spotlight@3x': 'src/static/app/icons/120x120.png',
},
},
},
splashscreen: {
androidStyle: 'common',
android: {
hdpi: 'src/static/app/start/start-480.png',
xhdpi: 'src/static/app/start/start-720.png',
xxhdpi: 'src/static/app/start/start-1080.png',
},
},
},
uniStatistics: {
enable: true,
},
nativePlugins: {
'EL-MTPush': {
MTPUSH_ADVERTISINGID_IOS: '',
MTPUSH_APPKEY_ANDROID: '474b121831f9c027f15d6d32',
MTPUSH_APPKEY_IOS: '',
MTPUSH_CHANNEL_ANDROID: '',
MTPUSH_CHANNEL_IOS: '',
MTPUSH_DEFAULTINIT_IOS: '',
MTPUSH_GOOGLE_API_KEY: '',
MTPUSH_GOOGLE_APP_ID: '',
MTPUSH_GOOGLE_PROJECT_ID: '',
MTPUSH_GOOGLE_PROJECT_NUMBER: '',
MTPUSH_GOOGLE_STORAGE_BUCKET: '',
MTPUSH_HONOR_APPID: '',
MTPUSH_HUAWEI_APPID: '',
MTPUSH_ISPRODUCTION_IOS: '',
MTPUSH_MEIZU_APPID: '',
MTPUSH_MEIZU_APPKEY: '',
MTPUSH_OPPO_APPID: '',
MTPUSH_OPPO_APPKEY: '',
MTPUSH_OPPO_APPSECRET: '',
MTPUSH_PROCESS_ANDROID: '',
MTPUSH_VIVO_APPID: '',
MTPUSH_VIVO_APPKEY: '',
MTPUSH_XIAOMI_APPID: '',
MTPUSH_XIAOMI_APPKEY: '',
__plugin_info__: {
name: 'EngageLab MTPush 官方SDK',
description: 'EngageLab MTPush官方SDK HBuilder插件版本',
platforms: 'Android,iOS',
url: 'https://ext.dcloud.net.cn/plugin?id=10093',
android_package_name: 'com.bandhu.mm',
ios_bundle_id: '',
isCloud: true,
bought: 1,
pid: '10093',
parameters: {
MTPUSH_ADVERTISINGID_IOS: {
des: '[iOS]广告标识符(IDFA)如果不需要使用IDFA,可不填',
key: 'MTPush:ADVERTISINGID',
value: '',
},
MTPUSH_APPKEY_ANDROID: {
des: '[Android]EngageLab portal配置应用信息时分配的AppKey',
key: '',
value: '',
},
MTPUSH_APPKEY_IOS: {
des: '[iOS]EngageLab portal配置应用信息时分配的AppKey',
key: 'MTPush:APP_KEY',
value: '',
},
MTPUSH_CHANNEL_ANDROID: {
des: '[Android]用于统计分发渠道,不需要可填默认值developer-default',
key: '',
value: '',
},
MTPUSH_CHANNEL_IOS: {
des: '[iOS]用于统计分发渠道,不需要可填默认值developer-default',
key: 'MTPush:CHANNEL',
value: '',
},
MTPUSH_DEFAULTINIT_IOS: {
des: '[iOS]是否默认初始化,是填true,不是填false或者不填',
key: 'MTPush:DEFAULTINIT',
value: '',
},
MTPUSH_GOOGLE_API_KEY: {
des: '厂商google api_key,示例:G-asxa1232',
key: 'google_api_key',
value: '',
},
MTPUSH_GOOGLE_APP_ID: {
des: '厂商google mobilesdk_app_id,示例:G-12346578',
key: 'google_app_id',
value: '',
},
MTPUSH_GOOGLE_PROJECT_ID: {
des: '厂商google project_id ,示例:G-12346578',
key: 'project_id',
value: '',
},
MTPUSH_GOOGLE_PROJECT_NUMBER: {
des: '厂商google project_number,示例:G-12346578',
key: 'gcm_defaultSenderId',
value: '',
},
MTPUSH_GOOGLE_STORAGE_BUCKET: {
des: '厂商google storage_bucket,示例:G-12346578',
key: 'google_storage_bucket',
value: '',
},
MTPUSH_HONOR_APPID: {
des: '厂商HONOR-appId,示例:12345678',
key: '',
value: '',
},
MTPUSH_HUAWEI_APPID: {
des: '厂商HUAWEI-appId,示例:appid=12346578',
key: 'com.huawei.hms.client.appid',
value: '',
},
MTPUSH_ISPRODUCTION_IOS: {
des: '[iOS]是否是生产环境,是填true,不是填false或者不填',
key: 'MTPush:ISPRODUCTION',
value: '',
},
MTPUSH_MEIZU_APPID: {
des: '厂商MEIZU-appId,示例:MZ-12345678',
key: '',
value: '',
},
MTPUSH_MEIZU_APPKEY: {
des: '厂商MEIZU-appKey,示例:MZ-12345678',
key: '',
value: '',
},
MTPUSH_OPPO_APPID: {
des: '厂商OPPO-appId,示例:OP-12345678',
key: '',
value: '',
},
MTPUSH_OPPO_APPKEY: {
des: '厂商OPPO-appkey,示例:OP-12345678',
key: '',
value: '',
},
MTPUSH_OPPO_APPSECRET: {
des: '厂商OPPO-appSecret,示例:OP-12345678',
key: '',
value: '',
},
MTPUSH_PROCESS_ANDROID: {
des: '[Android] Engagelab process,Engagelabsdk工作所在的进程,请填写 \':remote\', 注意:开头',
key: '',
value: '',
},
MTPUSH_VIVO_APPID: {
des: '厂商VIVO-appId,示例:12345678',
key: '',
value: '',
},
MTPUSH_VIVO_APPKEY: {
des: '厂商VIVO-appkey,示例:12345678',
key: '',
value: '',
},
MTPUSH_XIAOMI_APPID: {
des: '厂商XIAOMI-appId,示例:MI-12345678',
key: '',
value: '',
},
MTPUSH_XIAOMI_APPKEY: {
des: '厂商XIAOMI-appKey,示例:MI-12345678',
key: '',
value: '',
},
},
},
},
},
},
/* 快应用特有相关 */
'quickapp': {
uniStatistics: {
enable: false,
},
},
/* 小程序特有相关 */
'mp-weixin': {
appid: VITE_WX_APPID,
setting: {
urlCheck: false,
// 是否启用 ES6 转 ES5
es6: true,
minified: true,
},
optimization: {
subPackages: true,
},
usingComponents: true,
uniStatistics: {
enable: false,
},
// __usePrivacyCheck__: true,
},
'mp-alipay': {
usingComponents: true,
styleIsolation: 'shared',
uniStatistics: {
enable: false,
},
},
'mp-baidu': {
usingComponents: true,
uniStatistics: {
enable: false,
},
},
'mp-toutiao': {
usingComponents: true,
uniStatistics: {
enable: false,
},
},
'app-harmony': {
uniStatistics: {
enable: false,
},
},
'mp-harmony': {
uniStatistics: {
enable: false,
},
},
'mp-jd': {
uniStatistics: {
enable: false,
},
},
'mp-kuaishou': {
uniStatistics: {
enable: false,
},
},
'mp-lark': {
uniStatistics: {
enable: false,
},
},
'mp-qq': {
uniStatistics: {
enable: false,
},
},
'mp-xhs': {
uniStatistics: {
enable: false,
},
},
'uniStatistics': {
enable: false, // 全局开启
version: '2', // 开启新版uni统计,值为字符串
},
'vueVersion': '3',
})