79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
const path = require('path')
|
|
const webpack = require('webpack')
|
|
const generate = require('generate-file-webpack-plugin')
|
|
|
|
const fs = require('fs')
|
|
const packageJson = fs.readFileSync('./package.json')
|
|
const version = JSON.parse(packageJson).version || 0
|
|
|
|
module.exports = {
|
|
productionSourceMap: false,
|
|
transpileDependencies: [ 'vuetify' ],
|
|
pluginOptions: {
|
|
i18n: {
|
|
locale: 'en',
|
|
fallbackLocale: 'en',
|
|
localeDir: 'locales',
|
|
enableInSFC: true
|
|
}
|
|
},
|
|
configureWebpack: {
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
'process.env': {
|
|
PACKAGE_VERSION: '"' + version + '"'
|
|
}
|
|
}),
|
|
generate({
|
|
file: '.version',
|
|
content: 'v' + version
|
|
}),
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
vue$: 'vue/dist/vue.esm.js',
|
|
'@': path.resolve('src')
|
|
}
|
|
}
|
|
},
|
|
pwa: {
|
|
serviceWorker: false,
|
|
iconPaths: {
|
|
favicon16: 'img/icons/favicon-16x16.png',
|
|
favicon32: 'img/icons/favicon-32x32.png',
|
|
appleTouchIcon: 'img/icons/apple-touch-icon-152x152.png',
|
|
msTileImage: 'img/icons/mstile-150x150.png'
|
|
},
|
|
manifestPath: 'manifest.json',
|
|
name: 'Mainsail',
|
|
themeColor: '#121212',
|
|
msTileColor: '#121212',
|
|
appleMobileWebAppCapable: 'yes',
|
|
appleMobileWebAppStatusBarStyle: 'black',
|
|
|
|
manifestOptions: {
|
|
'short_name': 'Mainsail',
|
|
'name': 'Mainsail',
|
|
'start_url': '/',
|
|
'display': 'standalone',
|
|
'theme_color': '#D51F26',
|
|
'background_color': '#121212',
|
|
'icons': [
|
|
{
|
|
'src': './img/icons/icon-196-maskable.png',
|
|
'sizes': '196x196',
|
|
'type': 'image/png',
|
|
'purpose': 'maskable',
|
|
},
|
|
{
|
|
'src': './img/icons/icon-512-maskable.png',
|
|
'sizes': '512x512',
|
|
'type': 'image/png',
|
|
'purpose': 'maskable',
|
|
},
|
|
]
|
|
}
|
|
}
|
|
}
|