2021-08-19 22:14:50 +03:00
|
|
|
/**
|
|
|
|
* Global config for the main Vue app. ES7 not supported here.
|
|
|
|
* See docs for all config options: https://cli.vuejs.org/config
|
|
|
|
*/
|
|
|
|
const webpack = require('webpack');
|
2021-06-23 17:34:18 +03:00
|
|
|
const ProgressBarPlugin = require('progress-bar-webpack-plugin');
|
|
|
|
|
2021-06-23 00:28:08 +03:00
|
|
|
// Get current version
|
2021-08-19 22:14:50 +03:00
|
|
|
const { version } = require('./package.json');
|
2021-06-23 00:28:08 +03:00
|
|
|
|
2021-08-19 22:14:50 +03:00
|
|
|
// Set the current version, for use within the app
|
|
|
|
process.env.VUE_APP_VERSION = version;
|
|
|
|
|
|
|
|
// Make banner text, for output files
|
|
|
|
const banner = (() => {
|
|
|
|
const now = new Date();
|
|
|
|
const line1 = `Dashy ${version}. Built at ${now.toLocaleTimeString()} on ${now.toLocaleDateString()}`;
|
|
|
|
const line2 = `Licensed under MIT - (C) Alicia Sykes ${now.getFullYear()}`;
|
|
|
|
const line3 = 'Code + docs: https://github.com/lissy93/dashy';
|
|
|
|
return `${line1}\n${line2}\n${line3}`;
|
|
|
|
})();
|
|
|
|
|
|
|
|
// Specify and export the main Vue app config
|
2021-04-17 20:42:38 +03:00
|
|
|
module.exports = {
|
2021-08-19 22:14:50 +03:00
|
|
|
publicPath: process.env.BASE_URL,
|
|
|
|
integrity: true,
|
2021-04-17 20:42:38 +03:00
|
|
|
chainWebpack: config => {
|
|
|
|
config.module.rules.delete('svg');
|
|
|
|
},
|
|
|
|
configureWebpack: {
|
2021-06-29 00:43:55 +03:00
|
|
|
performance: { hints: false },
|
2021-04-17 20:42:38 +03:00
|
|
|
module: {
|
|
|
|
rules: [
|
|
|
|
{ test: /.svg$/, loader: 'vue-svg-loader' },
|
|
|
|
],
|
|
|
|
},
|
2021-06-23 17:34:18 +03:00
|
|
|
plugins: [
|
2021-08-19 22:14:50 +03:00
|
|
|
// Display progress bar while building
|
2021-06-23 17:34:18 +03:00
|
|
|
new ProgressBarPlugin(),
|
2021-08-19 22:14:50 +03:00
|
|
|
// Insert banner into output chunks
|
|
|
|
new webpack.BannerPlugin({ banner }),
|
2021-06-23 17:34:18 +03:00
|
|
|
],
|
2021-04-17 20:42:38 +03:00
|
|
|
},
|
2021-08-19 22:14:50 +03:00
|
|
|
// Specify resources for PWA / mobile support
|
2021-05-31 19:01:00 +03:00
|
|
|
pwa: {
|
|
|
|
name: 'Dashy',
|
2021-06-23 17:34:18 +03:00
|
|
|
manifestPath: './manifest.json',
|
2021-06-23 14:33:42 +03:00
|
|
|
themeColor: '#00af87',
|
2021-05-31 19:01:00 +03:00
|
|
|
msTileColor: '#0b1021',
|
2021-06-29 00:43:55 +03:00
|
|
|
mode: 'production',
|
2021-06-23 14:33:42 +03:00
|
|
|
iconPaths: {
|
|
|
|
manifestCrossorigin: 'use-credentials',
|
2021-06-23 17:34:18 +03:00
|
|
|
favicon64: './web-icons/favicon-64x64.png',
|
|
|
|
favicon32: './web-icons/favicon-32x32.png',
|
|
|
|
maskIcon: './web-icons/dashy-logo.png',
|
|
|
|
msTileImage: './web-icons/dashy-logo.png',
|
2021-06-23 14:33:42 +03:00
|
|
|
},
|
2021-05-31 19:01:00 +03:00
|
|
|
},
|
2021-08-19 22:14:50 +03:00
|
|
|
// Specify page for app entry point
|
2021-06-20 19:01:00 +03:00
|
|
|
pages: {
|
|
|
|
dashy: {
|
|
|
|
entry: 'src/main.js',
|
|
|
|
filename: 'index.html',
|
|
|
|
},
|
|
|
|
},
|
2021-04-17 20:42:38 +03:00
|
|
|
};
|