const webpack = require('webpack') const generate = require('generate-file-webpack-plugin') const MonacoEditorPlugin = require('monaco-editor-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 MonacoEditorPlugin({ // https://github.com/Microsoft/monaco-editor-webpack-plugin#options // Include a subset of languages support // Some language extensions like typescript are so huge that may impact build performance // e.g. Build full languages support with webpack 4.0 takes over 80 seconds // Languages are loaded on demand at runtime languages: ['css', 'javascript', 'html', 'shell'] }), new webpack.DefinePlugin({ 'process.env': { PACKAGE_VERSION: '"' + version + '"' } }), generate({ file: '.version', content: 'v' + version }), ], }, css: { loaderOptions: { sass: { sassOptions: { } } } }, /*chainWebpack: config => { config.module .rule('scss') .use('sass-loader') .loader('sass-loader') .end(); },*/ 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", }, ] } } }