diff --git a/front/vue.config.js b/front/vue.config.js deleted file mode 100644 index 22bbc63f2..000000000 --- a/front/vue.config.js +++ /dev/null @@ -1,164 +0,0 @@ -const baseUrl = process.env.BASE_URL || '/front/' - -const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; -const webpack = require('webpack'); -const PreloadWebpackPlugin = require('preload-webpack-plugin'); -let plugins = [ - // do not include moment.js locales since it's quite heavy - new webpack.IgnorePlugin({ - resourceRegExp: /^\.\/locale$/, - contextRegExp: /moment$/ - }), - new PreloadWebpackPlugin({ - rel: 'preload', - include: ['audio', 'core', 'about'] - }), -] -if (process.env.BUNDLE_ANALYZE === '1') { - plugins.push(new BundleAnalyzerPlugin()) -} -// Disabled because it causes some issues, like #1032, since some useful rules are still -// removed, and we cannot detect this during development -// plugins.push( -// new PurgecssPlugin({ -// paths: glob.sync([ -// path.join(__dirname, './public/index.html'), -// path.join(__dirname, './public/embed.html'), -// path.join(__dirname, './**/*.vue'), -// path.join(__dirname, './src/**/*.js') -// ]), -// whitelist: ['scale'], -// whitelistPatterns: [/plyr/, /toast/, /transition/, /visible/], -// whitelistPatternsChildren: [/plyr/, /dropdown/, /upward/] -// }), -// ) - -module.exports = { - publicPath: baseUrl, - productionSourceMap: false, - // Add settings for manifest file - pwa: { - name: 'Funkwhale', - themeColor: '#f2711c', - msTileColor: '#000000', - appleMobileWebAppCapable: 'yes', - appleMobileWebAppStatusBarStyle: 'black', - workboxPluginMode: 'InjectManifest', - manifestOptions: { - display: 'standalone', - start_url: '.', - description: 'A social platform to enjoy and share music', - scope: "/", - categories: ["music"], - icons: [ - { - 'src': baseUrl + 'favicon.png', - 'sizes': '192x192', - 'type': 'image/png' - }, { - 'src': baseUrl + 'favicon.png', - 'sizes': '512x512', - 'type': 'image/png' - }, - ] - }, - workboxOptions: { - importWorkboxFrom: 'local', - // swSrc is required in InjectManifest mode. - swSrc: 'src/service-worker.js', - swDest: 'service-worker.js', - exclude: [ - new RegExp('js/locale.*'), - new RegExp('js/moment-locale.*'), - new RegExp('js/admin.*'), - new RegExp('css/admin.*'), - ] - }, - iconPaths: { - favicon32: 'favicon.png', - favicon16: 'favicon.png', - appleTouchIcon: 'favicon.png', - maskIcon: 'favicon.png', - msTileImage: 'favicon.png' - } - }, - pages: { - embed: { - entry: 'src/embed.js', - template: 'public/embed.html', - filename: 'embed.html', - chunks: ['chunk-vendors', 'chunk-common', 'chunk-embed-vendors', 'embed'] - }, - index: { - entry: 'src/main.js', - template: 'public/index.html', - filename: 'index.html', - chunks: ['chunk-vendors', 'chunk-common', 'chunk-index-vendors', 'index'] - } - }, - chainWebpack: config => { - // config.plugins.delete('prefetch-embed') - // config.plugins.delete('preload-embed') - // config.plugins.delete('prefetch-index') - // TODO: Remove this workaround once https://github.com/vuejs/vue-cli/issues/2463 is fixed - // Remove preload plugins for multi-page build to prevent infinite recursion - ['embed', 'index'].forEach(page => { - config.plugins.delete(`preload-${page}`) - config.plugins.delete(`prefetch-${page}`) - }) - // needed to avoid having big dependedncies included in our lightweight - // embed.html, cf https://github.com/vuejs/vue-cli/issues/2381 - const options = module.exports - const pages = options.pages - const pageKeys = Object.keys(pages) - - // Long-term caching - - const IS_VENDOR = /[\\/]node_modules[\\/]/ - - config.optimization - .splitChunks({ - cacheGroups: { - vendors: { - name: 'chunk-vendors', - priority: -10, - chunks: 'initial', - minChunks: 2, - test: IS_VENDOR, - enforce: true, - }, - ...pageKeys.map(key => ({ - name: `chunk-${key}-vendors`, - priority: -11, - chunks: chunk => chunk.name === key, - test: IS_VENDOR, - enforce: true, - })), - common: { - name: 'chunk-common', - priority: -20, - chunks: 'initial', - minChunks: 2, - reuseExistingChunk: true, - enforce: true, - }, - }, - }) - }, - configureWebpack: { - plugins: plugins, - devtool: false - }, - devServer: { - disableHostCheck: true, - // use https://node1.funkwhale.test/front-server/ if you use docker with federation - public: process.env.FRONT_DEVSERVER_URL || ('http://localhost:' + (process.env.VUE_PORT || '8080')) - }, - css: { - loaderOptions: { - sass: { - implementation: require('sass') - } - } - } -}