@quasar/app-webpack
Version:
Quasar Framework App CLI with Webpack
125 lines (117 loc) • 4.86 kB
TypeScript
import { QuasarAnimations, QuasarFonts, QuasarIconSets } from "quasar";
import { QuasarEslintConfiguration } from "./eslint";
import { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server";
import { Options as OpenOptions } from "open";
import { QuasarBootConfiguration } from "./boot";
import { QuasarBuildConfiguration } from "./build";
import { QuasarCapacitorConfiguration } from "./capacitor-conf";
import { QuasarCordovaConfiguration } from "./cordova-conf";
import { QuasarElectronConfiguration } from "./electron-conf";
import { QuasarFrameworkConfiguration } from "./framework-conf";
import { QuasarPwaConfiguration } from "./pwa-conf";
import { QuasarSsrConfiguration } from "./ssr-conf";
import { QuasarMobileConfiguration } from "./mobile-conf";
import { QuasarBexConfiguration } from "./bex";
type DevServerOptions = Omit<WebpackDevServerConfiguration, "open"> & {
open?: Omit<OpenOptions, "wait"> | boolean;
};
type QuasarAnimationsConfiguration = "all" | QuasarAnimations[];
/**
* Use this property to change the default names of some files of your website/app if you have to.
* All paths must be relative to the root folder of your project.
*
* @default
* ```typescript
* {
* rootComponent: 'src/App.vue',
* router: 'src/router/index',
* store: 'src/stores/index',
* indexHtmlTemplate: 'index.html',
* pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
* pwaServiceWorker: 'src-pwa/custom-service-worker',
* pwaManifestFile: 'src-pwa/manifest.json',
* electronMain: 'src-electron/electron-main',
* bexManifestFile: 'src-bex/manifest.json'
* }
* ```
*/
interface QuasarSourceFilesConfiguration {
rootComponent?: string;
router?: string;
store?: string;
indexHtmlTemplate?: string;
pwaRegisterServiceWorker?: string;
pwaServiceWorker?: string;
pwaManifestFile?: string;
electronMain?: string;
bexManifestFile?: string;
}
interface BaseQuasarConfiguration {
/** Options with which Quasar CLI will use ESLint */
eslint?: QuasarEslintConfiguration;
/** Boot files to load. Order is important. */
boot?: QuasarBootConfiguration;
/**
* Global CSS/Stylus/SCSS/SASS/... files from `/src/css/`,
* except for theme files, which are included by default.
*/
css?: string[];
/** Enable [PreFetch Feature](https://v2.quasar.dev/quasar-cli-webpack/prefetch-feature). */
preFetch?: boolean;
/**
* What to import from [@quasar/extras](https://github.com/quasarframework/quasar/tree/dev/extras) package.
* @example ['material-icons', 'roboto-font', 'ionicons-v4']
*/
extras?: (QuasarIconSets | QuasarFonts)[];
/** Add/remove files/3rd party libraries to/from vendor chunk. */
vendor?: {
add: string[];
remove: string[];
};
/** Add variables that you can use in index.html */
htmlVariables?: Record<string, any>;
/**
* What Quasar language pack to use, what Quasar icon
* set to use for Quasar components.
*/
framework?: QuasarFrameworkConfiguration;
/**
* What [CSS animations](https://v2.quasar.dev/options/animations) to import.
* @example: [ 'bounceInLeft', 'bounceOutRight' ]
*/
animations?: QuasarAnimationsConfiguration | 'all';
/**
* Webpack dev server [options](https://webpack.js.org/configuration/dev-server/).
* Some properties are overwritten based on the Quasar mode you're using in order
* to ensure a correct config.
* Note: if you're proxying the development server (i.e. using a cloud IDE),
* set the `public` setting to your public application URL.
*/
devServer?: DevServerOptions;
/** Build configuration options. */
build?: QuasarBuildConfiguration;
/** Change the default name of parts of your app. */
sourceFiles?: QuasarSourceFilesConfiguration;
}
export interface QuasarHookParams {
quasarConf: QuasarConf;
}
export type QuasarConf = BaseQuasarConfiguration & QuasarMobileConfiguration & {
/** PWA specific [config](https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa). */
pwa?: QuasarPwaConfiguration;
} & {
/** SSR specific [config](https://v2.quasar.dev/quasar-cli-webpack/developing-ssr/configuring-ssr). */
ssr?: QuasarSsrConfiguration;
} & {
/** Capacitor specific [config](https://v2.quasar.dev/quasar-cli-webpack/developing-capacitor-apps/configuring-capacitor). */
capacitor?: QuasarCapacitorConfiguration;
} & {
/** Cordova specific [config](https://v2.quasar.dev/quasar-cli-webpack/developing-cordova-apps/configuring-cordova). */
cordova?: QuasarCordovaConfiguration;
} & {
/** Electron specific [config](https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron). */
electron?: QuasarElectronConfiguration;
} & {
/** Bex specific [config](https://v2.quasar.dev/quasar-cli-webpack/developing-bex/configuring-bex). */
bex?: QuasarBexConfiguration;
};