使用 Vite 的 Quasar CLI - @quasar/app-vite
我们将使用 Quasar CLI(和 Cordova CLI)来开发和构建移动应用程序。构建 SPA、PWA、Electron 应用程序或移动应用程序之间的区别仅仅由 “quasar dev” 和 “quasar build” 命令中的 “mode” 参数决定。
移动应用程序有两个非常重要的配置文件。我们将逐一介绍。
config.xml
移动应用程序最重要的配置文件是 /src-cordova/config.xml
。 /src-cordova
文件夹是一个 Cordova 项目,因此请参考 Cordova 文档 了解其中每个文件的功能。但现在,请花几分钟时间阅读有关 config.xml 的信息。
正如我们将在下一节中看到,此文件中的某些属性将被覆盖。
quasar.config 文件
Quasar CLI 帮助您自动设置移动应用程序的某些属性(来自 config.xml):Cordova “id”,应用程序版本,描述和 android-versionCode。这样做是为了方便起见,这样您就可以在一个地方更改应用程序的版本,而不必同时修改多个文件,这样容易出错。
为了确定上述每个属性的值,Quasar CLI
- 在
/quasar.config
文件中查找 “cordova” 对象。它是否包含 “version”, “description” 和/或 “androidVersionCode”?如果有,它将使用它们。 - 如果没有,它将在您的
/package.json
中查找 “cordovaId”, “version” 和 “description” 字段。
/*
return {
cordova: {
// ...defined by interface below
}
}
*/
interface QuasarCordovaConfiguration {
/** If not present, will look for `package.json > version` */
version?: string;
/** If not present, will look for `package.json > description` */
description?: string;
androidVersionCode?: string;
/**
* Enable Xcode modern build even if after considering iOS-Cordova issues.
* You can enable it if you know what you are doing,
* for example if you want to specify the build type in your “build.json”.
*
* @default false
*/
noIosLegacyBuildFlag?: boolean;
/**
* (Requires @quasar/app-vite v1.8.5+)
*
* Function to return the Cordova build command parameters that
* will be executed after the UI has compiled.
*
* @param context.debug - True if in debug mode
* @param context.target - The target platform (ios/android)
* @returns Array of strings (command parameters)
*
* @default: [ 'build', '--debug'/'--release', '--device', 'ios'/'android' ]
* @example: ({ isDebug, target }) => [ 'build', `--${isDebug ? 'debug' : 'release'}`, '--device', 'target' ]
*/
getCordovaBuildParams?: (context: { debug: boolean; target: 'ios' | 'android' }) => string[];
/**
* (Requires @quasar/app-vite v1.8.5+)
*
* Function to return the Cordova output folder after the "cordova build"
* command is executed.
* The relative to /src-cordova path is used to copy the Cordova output
* to the /dist folder.
*
* @param context.debug - True if in debug mode
* @param context.target - The target platform (ios/android)
* @returns string | string[] | undefined - (relative path(s) from /src-cordova)
*
* @default ios: platforms/ios/build/... and android: platforms/android/app/build/outputs
* @example:
* ({ isDebug, target }) => {
* return target === 'ios'
* ? `platforms/ios/build/${isDebug ? 'Debug' : 'Release'}-iphoneos
* : 'platforms/android/app/build/outputs'
* }
* @example: (when interested in only one platform, leaving the other to the default value)
* ({ isDebug, target }) => {
* if (target === 'ios') {
* return `platforms/ios/build/${isDebug ? 'Debug' : 'Release'}-iphoneos`
* }
* }
* @example: ()
* ({ isDebug, target }) => {
* if (target === 'ios') {
* // try these two folders
* return [ 'platforms/ios/build/device', 'platforms/ios/build/emulator' ]
* }
* }
*/
getCordovaBuildOutputFolder?: (context: { debug: boolean; target: 'ios' | 'android' }) => string | string[] | undefined;
}
content_paste
您可以配置的其他选项
return {
framework: {
config: {
cordova: {
// add the dynamic top padding on iOS mobile devices
iosStatusBarPadding: true/false,
// Quasar handles app exit on mobile phone back button.
backButtonExit: true/false/'*'/['/login', '/home', '/my-page'],
// On the other hand, the following completely
// disables Quasar's back button management.
backButton: true/false
}
}
}
}
content_paste
如果您想修改 /src 中 UI 的 Vite 配置
module.exports = function (ctx) {
return {
build: {
extendViteConf (viteConf) {
if (ctx.mode.cordova) {
// do something with ViteConf
}
}
}
}
}
content_paste