Files
freeplanet/quasar.conf.js

209 lines
5.4 KiB
JavaScript
Raw Normal View History

2018-10-12 16:42:54 +02:00
// Configuration for your app
2018-10-13 19:14:58 +02:00
const path = require('path');
2018-10-12 16:42:54 +02:00
2018-11-05 22:28:59 +01:00
const webpack = require('webpack')
const envparser = require('./config/envparser')
const extendTypescriptToWebpack = (config) => {
config.resolve
.extensions
.add('.ts', '.js', '.vue')
config.resolve
.alias
.set('@components', path.resolve(__dirname, 'src/components/index.ts'))
.set('@components', path.resolve(__dirname, 'src/components'))
.set('@views', path.resolve(__dirname, 'src/components/views/index.ts'))
.set('@views', path.resolve(__dirname, 'src/components/views'))
.set('@src', path.resolve(__dirname, 'src'))
.set('@icons', path.resolve(__dirname, 'src/assets/icons'))
.set('@images', path.resolve(__dirname, 'src/assets/images'))
.set('@classes', path.resolve(__dirname, 'src/classes/index.ts'))
.set('@utils', path.resolve(__dirname, 'src/utils/index.ts'))
.set('@utils', path.resolve(__dirname, 'src/utils/*'))
.set('@css', path.resolve(__dirname, 'src/styles/variables.scss'))
.set('@router', path.resolve(__dirname, 'src/router/index.ts'))
.set('@validators', path.resolve(__dirname, 'src/utils/validators.ts'))
.set('@api', path.resolve(__dirname, 'src/store/Api/index.ts'))
.set('@paths', path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'))
.set('@types', path.resolve(__dirname, 'src/typings/index.ts'))
.set('@store', path.resolve(__dirname, 'src/store/index.ts'))
.set('@modules', path.resolve(__dirname, 'src/store/Modules/index.ts'))
config.module
.rule('typescript')
.test(/\.tsx?$/)
.use('typescript')
.loader('ts-loader')
.options({
appendTsSuffixTo: [/\.vue$/],
onlyCompileBundledFiles: true
})
};
const extendHTMLToWebpack = (config) => {
config.resolve
.extensions
.add('.html');
config.module
.rule('html')
.test(/\.html?$/)
.use('html')
.loader('vue-html-loader')
};
2018-10-12 16:42:54 +02:00
module.exports = function (ctx) {
return {
sourceFiles: {
router: 'src/router/index.ts',
store: 'src/store/index.ts'
},
// app plugins (/src/plugins)
plugins: ['i18n', 'axios', 'vee-validate'],
2018-10-12 16:42:54 +02:00
css: [
'app.styl'
],
extras: [
2018-10-13 19:14:58 +02:00
//ctx.theme.mat ? : null,
'roboto-font',
'material-icons', // optional, you are not bound to it
'ionicons',
2018-10-12 16:42:54 +02:00
// 'mdi',
2018-10-13 19:14:58 +02:00
'fontawesome'
2018-10-12 16:42:54 +02:00
],
supportIE: false,
build: {
showProgress: true,
2018-11-05 22:28:59 +01:00
env: envparser(),
2018-10-12 16:42:54 +02:00
scopeHoisting: true,
vueRouterMode: 'history',
vueCompiler: true,
gzip: true,
analyze: true,
2018-10-12 16:42:54 +02:00
// extractCSS: false,
chainWebpack(config) {
extendTypescriptToWebpack(config);
// extendHTMLToWebpack(config);
config.resolve
.alias
.set('~', __dirname)
2018-11-11 19:27:04 +01:00
.set('@', path.resolve(__dirname, 'src'))
config.module
.rule('template-engine')
.test(/\.pug$/)
.use('pug')
.loader('pug-plain-loader')
2018-10-12 16:42:54 +02:00
}
},
devServer: {
https: false,
2018-10-20 18:56:31 +02:00
port: 8080,
open: true // opens browser window automatically
2018-10-12 16:42:54 +02:00
},
// framework: 'all' --- includes everything; for dev only!
2018-10-12 16:42:54 +02:00
framework: {
components: [
'QLayout',
'QLayoutHeader',
'QLayoutDrawer',
'QPageContainer',
'QPage',
'QToolbar',
'QToolbarTitle',
'QBtn',
'QIcon',
'QList',
'QListHeader',
'QItem',
'QItemMain',
'QItemSide',
'QCard',
'QCardTitle',
'QCardMain',
'QCardMedia',
'QCardSeparator',
'QCardActions',
'QField',
2018-10-20 18:56:31 +02:00
'QInput',
2018-10-12 16:42:54 +02:00
'QSelect',
2018-10-13 19:14:58 +02:00
'QPopover',
'QToggle',
'QFab',
'QInfiniteScroll',
'QAjaxBar',
'QChip',
'QCollapsible',
2018-10-14 22:10:00 +02:00
'QCheckbox',
2018-10-25 01:51:29 +02:00
'QAlert',
2018-10-26 22:25:35 +02:00
'QInnerLoading',
'QSpinnerGears',
'QDatetime',
2018-10-12 16:42:54 +02:00
],
directives: [
'Ripple',
'CloseOverlay'
2018-10-12 16:42:54 +02:00
],
// Quasar plugins
plugins: [
'Notify',
'Meta',
'Cookies',
'ActionSheet', 'Loading'
2018-10-12 16:42:54 +02:00
],
2018-10-13 19:14:58 +02:00
iconSet: 'fontawesome',
i18n: 'it', // Quasar language
2018-10-12 16:42:54 +02:00
},
animations: [],
ssr: {
pwa: {
runtimeCaching: [
{
urlPattern: '/statics',
handler: 'networkFirst'
}
]
}
2018-10-12 16:42:54 +02:00
},
pwa: {
workboxPluginMode: 'InjectManifest',
// workboxOptions: {},
manifest: {
name: 'My App',
short_name: 'myapp',
description: 'Descrizione APP!',
display: 'standalone',
orientation: 'portrait',
background_color: '#ffffff',
theme_color: '#027be3',
icons: [
{
'src': 'statics/icons/icon-128x128.png',
'sizes': '128x128',
'type': 'image/png'
},
{
'src': 'statics/icons/icon-192x192.png',
'sizes': '192x192',
'type': 'image/png'
},
{
'src': 'statics/icons/icon-256x256.png',
'sizes': '256x256',
'type': 'image/png'
},
{
'src': 'statics/icons/icon-384x384.png',
'sizes': '384x384',
'type': 'image/png'
},
{
'src': 'statics/icons/icon-512x512.png',
'sizes': '512x512',
'type': 'image/png'
}
]
}
},
}
};