2018-10-12 16:42:54 +02:00
|
|
|
// Configuration for your app
|
2018-10-13 19:14:58 +02:00
|
|
|
|
2018-11-02 20:10:45 +01: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')
|
|
|
|
|
|
2018-11-02 22:15:48 +01:00
|
|
|
|
2018-11-02 15:56:29 +01:00
|
|
|
const extendTypescriptToWebpack = (config) => {
|
|
|
|
|
config.resolve
|
|
|
|
|
.extensions
|
2018-11-17 20:32:28 +01:00
|
|
|
.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'))
|
2018-11-02 15:56:29 +01:00
|
|
|
config.module
|
|
|
|
|
.rule('typescript')
|
|
|
|
|
.test(/\.tsx?$/)
|
|
|
|
|
.use('typescript')
|
|
|
|
|
.loader('ts-loader')
|
|
|
|
|
.options({
|
|
|
|
|
appendTsSuffixTo: [/\.vue$/],
|
|
|
|
|
onlyCompileBundledFiles: true
|
|
|
|
|
})
|
|
|
|
|
};
|
|
|
|
|
|
2018-11-08 01:09:33 +01:00
|
|
|
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 {
|
2018-11-02 15:56:29 +01:00
|
|
|
sourceFiles: {
|
|
|
|
|
router: 'src/router/index.ts',
|
|
|
|
|
store: 'src/store/index.ts'
|
|
|
|
|
},
|
2018-11-02 20:10:45 +01:00
|
|
|
// app plugins (/src/plugins)
|
2018-11-02 23:22:16 +01:00
|
|
|
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: {
|
2018-11-08 01:09:33 +01:00
|
|
|
showProgress: true,
|
2018-11-05 22:28:59 +01:00
|
|
|
env: envparser(),
|
2018-10-12 16:42:54 +02:00
|
|
|
scopeHoisting: true,
|
2018-11-02 15:56:29 +01:00
|
|
|
vueRouterMode: 'history',
|
|
|
|
|
vueCompiler: true,
|
|
|
|
|
gzip: true,
|
|
|
|
|
analyze: true,
|
2018-10-12 16:42:54 +02:00
|
|
|
// extractCSS: false,
|
2018-11-02 15:56:29 +01:00
|
|
|
chainWebpack(config) {
|
|
|
|
|
extendTypescriptToWebpack(config);
|
2018-11-08 01:09:33 +01:00
|
|
|
// extendHTMLToWebpack(config);
|
2018-11-02 15:56:29 +01:00
|
|
|
config.resolve
|
|
|
|
|
.alias
|
|
|
|
|
.set('~', __dirname)
|
2018-11-11 19:27:04 +01:00
|
|
|
.set('@', path.resolve(__dirname, 'src'))
|
2018-11-02 15:56:29 +01:00
|
|
|
config.module
|
|
|
|
|
.rule('template-engine')
|
|
|
|
|
.test(/\.pug$/)
|
|
|
|
|
.use('pug')
|
|
|
|
|
.loader('pug-plain-loader')
|
2018-10-12 16:42:54 +02:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
devServer: {
|
2018-11-02 20:10:45 +01:00
|
|
|
https: false,
|
2018-10-20 18:56:31 +02:00
|
|
|
port: 8080,
|
2018-12-06 20:07:51 +01:00
|
|
|
open: false // opens browser window automatically
|
2018-10-12 16:42:54 +02:00
|
|
|
},
|
2018-11-02 20:10:45 +01: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',
|
2018-11-02 15:56:29 +01:00
|
|
|
'QDatetime',
|
2018-10-12 16:42:54 +02:00
|
|
|
],
|
|
|
|
|
directives: [
|
2018-11-02 20:10:45 +01:00
|
|
|
'Ripple',
|
|
|
|
|
'CloseOverlay'
|
2018-10-12 16:42:54 +02:00
|
|
|
],
|
|
|
|
|
// Quasar plugins
|
|
|
|
|
plugins: [
|
2018-11-02 20:10:45 +01:00
|
|
|
'Notify',
|
|
|
|
|
'Meta',
|
|
|
|
|
'Cookies',
|
|
|
|
|
'ActionSheet', 'Loading'
|
2018-10-12 16:42:54 +02:00
|
|
|
],
|
2018-10-13 19:14:58 +02:00
|
|
|
iconSet: 'fontawesome',
|
2018-11-02 20:10:45 +01:00
|
|
|
i18n: 'it', // Quasar language
|
2018-10-12 16:42:54 +02:00
|
|
|
},
|
|
|
|
|
animations: [],
|
|
|
|
|
ssr: {
|
2018-11-02 20:10:45 +01:00
|
|
|
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'
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
};
|