|
|
|
/* eslint-env node */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This file runs in a Node context (it's NOT transpiled by Babel), so use only
|
|
|
|
* the ES6 features that are supported by your Node version. https://node.green/
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Configuration for your app
|
|
|
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js
|
|
|
|
|
|
|
|
const { configure } = require('quasar/wrappers')
|
|
|
|
const path = require('path')
|
|
|
|
const yaml = require('js-yaml')
|
|
|
|
const fs = require('fs')
|
|
|
|
|
|
|
|
module.exports = configure(function (ctx) {
|
|
|
|
const userConfig = ctx.dev ? {
|
|
|
|
dev: { port: 3001, hmrClientPort: 3001 },
|
|
|
|
...yaml.load(fs.readFileSync(path.resolve(__dirname, '../config.yml'), 'utf8'))
|
|
|
|
} : {}
|
|
|
|
|
|
|
|
return {
|
|
|
|
eslint: {
|
|
|
|
fix: true,
|
|
|
|
// include = [],
|
|
|
|
// exclude = [],
|
|
|
|
// rawOptions = {},
|
|
|
|
warnings: true,
|
|
|
|
errors: true
|
|
|
|
},
|
|
|
|
|
|
|
|
// https://v2.quasar.dev/quasar-cli/prefetch-feature
|
|
|
|
preFetch: true,
|
|
|
|
|
|
|
|
// app boot file (/src/boot)
|
|
|
|
// --> boot files are part of "main.js"
|
|
|
|
// https://v2.quasar.dev/quasar-cli/boot-files
|
|
|
|
boot: [
|
|
|
|
'apollo',
|
|
|
|
'components',
|
|
|
|
'externals',
|
|
|
|
'eventbus',
|
|
|
|
'i18n',
|
|
|
|
{
|
|
|
|
server: false,
|
|
|
|
path: 'monaco'
|
|
|
|
}
|
|
|
|
],
|
|
|
|
|
|
|
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css
|
|
|
|
css: [
|
|
|
|
'app.scss'
|
|
|
|
],
|
|
|
|
|
|
|
|
// https://github.com/quasarframework/quasar/tree/dev/extras
|
|
|
|
extras: [
|
|
|
|
// 'ionicons-v4',
|
|
|
|
// 'mdi-v5',
|
|
|
|
// 'mdi-v7',
|
|
|
|
// 'fontawesome-v6',
|
|
|
|
// 'eva-icons',
|
|
|
|
// 'themify',
|
|
|
|
'line-awesome'
|
|
|
|
// 'roboto-font-latin-ext' // this or either 'roboto-font', NEVER both!
|
|
|
|
// 'roboto-font', // optional, you are not bound to it
|
|
|
|
// 'material-icons' // optional, you are not bound to it
|
|
|
|
],
|
|
|
|
|
|
|
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
|
|
|
|
build: {
|
|
|
|
target: {
|
|
|
|
browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
|
|
|
|
node: 'node18'
|
|
|
|
},
|
|
|
|
|
|
|
|
vueRouterMode: 'history', // available values: 'hash', 'history'
|
|
|
|
// vueRouterBase,
|
|
|
|
// vueDevtools,
|
|
|
|
vueOptionsAPI: false,
|
|
|
|
|
|
|
|
rebuildCache: true, // rebuilds Vite/linter/etc cache on startup
|
|
|
|
|
|
|
|
// publicPath: '/',
|
|
|
|
// analyze: true,
|
|
|
|
// env: {},
|
|
|
|
// rawDefine: {}
|
|
|
|
// ignorePublicFolder: true,
|
|
|
|
// minify: false,
|
|
|
|
// polyfillModulePreload: true,
|
|
|
|
distDir: '../assets',
|
|
|
|
|
|
|
|
extendViteConf (viteConf) {
|
|
|
|
if (ctx.prod) {
|
|
|
|
viteConf.build.assetsDir = '_assets'
|
|
|
|
viteConf.build.rollupOptions = {
|
|
|
|
...viteConf.build.rollupOptions ?? {},
|
|
|
|
output: {
|
|
|
|
manualChunks (id) {
|
|
|
|
if (id.includes('lodash')) {
|
|
|
|
return 'lodash'
|
|
|
|
// } else if (id.includes('quasar')) {
|
|
|
|
// return 'quasar'
|
|
|
|
} else if (id.includes('pages/Admin')) {
|
|
|
|
return 'admin'
|
|
|
|
} else if (id.includes('pages/Profile')) {
|
|
|
|
return 'profile'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
viteConf.build.chunkSizeWarningLimit = 5000
|
|
|
|
viteConf.build.dynamicImportVarsOptions = {
|
|
|
|
warnOnError: true,
|
|
|
|
include: ['!/_blocks/**']
|
|
|
|
}
|
|
|
|
viteConf.optimizeDeps.include = [
|
|
|
|
'prosemirror-state',
|
|
|
|
'prosemirror-transform',
|
|
|
|
'prosemirror-model',
|
|
|
|
'prosemirror-view'
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// viteVuePluginOptions: {},
|
|
|
|
|
|
|
|
vitePlugins: [
|
|
|
|
['@intlify/unplugin-vue-i18n/vite', {
|
|
|
|
// if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false`
|
|
|
|
// compositionOnly: false,
|
|
|
|
|
|
|
|
// you need to set i18n resource including paths !
|
|
|
|
include: path.resolve(__dirname, './src/i18n/locales/**')
|
|
|
|
}]
|
|
|
|
]
|
|
|
|
// sourcemap: true
|
|
|
|
},
|
|
|
|
|
|
|
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer
|
|
|
|
devServer: {
|
|
|
|
// https: true
|
|
|
|
open: false, // opens browser window automatically
|
|
|
|
port: userConfig.dev?.port,
|
|
|
|
proxy: ['_graphql', '_blocks', '_site', '_thumb', '_user'].reduce((result, key) => {
|
|
|
|
result[`/${key}`] = {
|
|
|
|
target: {
|
|
|
|
host: '127.0.0.1',
|
|
|
|
port: userConfig.port
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result
|
|
|
|
}, {}),
|
|
|
|
hmr: {
|
|
|
|
clientPort: userConfig.dev?.hmrClientPort
|
|
|
|
},
|
|
|
|
vueDevtools: true
|
|
|
|
},
|
|
|
|
|
|
|
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework
|
|
|
|
framework: {
|
|
|
|
config: {
|
|
|
|
brand: {
|
|
|
|
header: '#000',
|
|
|
|
sidebar: '#1976D2'
|
|
|
|
},
|
|
|
|
loading: {
|
|
|
|
delay: 500,
|
|
|
|
spinner: 'QSpinnerGrid',
|
|
|
|
spinnerSize: 32,
|
|
|
|
spinnerColor: 'white',
|
|
|
|
customClass: 'loading-darker'
|
|
|
|
},
|
|
|
|
loadingBar: {
|
|
|
|
color: 'primary',
|
|
|
|
size: '1px',
|
|
|
|
position: 'top'
|
|
|
|
},
|
|
|
|
notify: {
|
|
|
|
position: 'top',
|
|
|
|
progress: true,
|
|
|
|
color: 'green',
|
|
|
|
icon: 'las la-check',
|
|
|
|
actions: [
|
|
|
|
{
|
|
|
|
icon: 'las la-times',
|
|
|
|
color: 'white',
|
|
|
|
size: 'sm',
|
|
|
|
round: true,
|
|
|
|
handler: () => {}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
iconSet: 'mdi-v7', // Quasar icon set
|
|
|
|
lang: 'en-US', // Quasar language pack
|
|
|
|
|
|
|
|
// For special cases outside of where the auto-import strategy can have an impact
|
|
|
|
// (like functional components as one of the examples),
|
|
|
|
// you can manually specify Quasar components/directives to be available everywhere:
|
|
|
|
//
|
|
|
|
// components: [],
|
|
|
|
// directives: [],
|
|
|
|
|
|
|
|
// Quasar plugins
|
|
|
|
plugins: [
|
|
|
|
'Dialog',
|
|
|
|
'Loading',
|
|
|
|
'LoadingBar',
|
|
|
|
'Meta',
|
|
|
|
'Notify'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
|
|
|
|
// animations: 'all', // --- includes all animations
|
|
|
|
// https://v2.quasar.dev/options/animations
|
|
|
|
animations: [],
|
|
|
|
|
|
|
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#property-sourcefiles
|
|
|
|
sourceFiles: {
|
|
|
|
// rootComponent: 'src/App.vue',
|
|
|
|
// router: 'src/router/index',
|
|
|
|
store: 'src/stores/index'
|
|
|
|
// registerServiceWorker: 'src-pwa/register-service-worker',
|
|
|
|
// serviceWorker: 'src-pwa/custom-service-worker',
|
|
|
|
// pwaManifestFile: 'src-pwa/manifest.json',
|
|
|
|
// electronMain: 'src-electron/electron-main',
|
|
|
|
// electronPreload: 'src-electron/electron-preload'
|
|
|
|
},
|
|
|
|
|
|
|
|
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
|
|
|
|
ssr: {
|
|
|
|
// ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
|
|
|
|
// will mess up SSR
|
|
|
|
|
|
|
|
// extendSSRWebserverConf (esbuildConf) {},
|
|
|
|
// extendPackageJson (json) {},
|
|
|
|
|
|
|
|
pwa: false,
|
|
|
|
|
|
|
|
// manualStoreHydration: true,
|
|
|
|
// manualPostHydrationTrigger: true,
|
|
|
|
|
|
|
|
prodPort: 3000, // The default port that the production server should use
|
|
|
|
// (gets superseded if process.env.PORT is specified at runtime)
|
|
|
|
|
|
|
|
middlewares: [
|
|
|
|
'render' // keep this as last one
|
|
|
|
]
|
|
|
|
},
|
|
|
|
|
|
|
|
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
|
|
|
|
pwa: {
|
|
|
|
workboxMode: 'generateSW', // or 'injectManifest'
|
|
|
|
injectPwaMetaTags: true,
|
|
|
|
swFilename: 'sw.js',
|
|
|
|
manifestFilename: 'manifest.json',
|
|
|
|
useCredentialsForManifestTag: false
|
|
|
|
// extendGenerateSWOptions (cfg) {}
|
|
|
|
// extendInjectManifestOptions (cfg) {},
|
|
|
|
// extendManifestJson (json) {}
|
|
|
|
// extendPWACustomSWConf (esbuildConf) {}
|
|
|
|
},
|
|
|
|
|
|
|
|
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
|
|
|
|
electron: {
|
|
|
|
// extendElectronMainConf (esbuildConf)
|
|
|
|
// extendElectronPreloadConf (esbuildConf)
|
|
|
|
|
|
|
|
inspectPort: 5858,
|
|
|
|
|
|
|
|
bundler: 'packager', // 'packager' or 'builder'
|
|
|
|
|
|
|
|
packager: {
|
|
|
|
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
|
|
|
|
|
|
|
// OS X / Mac App Store
|
|
|
|
// appBundleId: '',
|
|
|
|
// appCategoryType: '',
|
|
|
|
// osxSign: '',
|
|
|
|
// protocol: 'myapp://path',
|
|
|
|
|
|
|
|
// Windows only
|
|
|
|
// win32metadata: { ... }
|
|
|
|
},
|
|
|
|
|
|
|
|
builder: {
|
|
|
|
// https://www.electron.build/configuration/configuration
|
|
|
|
|
|
|
|
appId: 'ux'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|