Remove vue cli config
This commit is contained in:
parent
06f636fec0
commit
ebb3d7deb5
|
@ -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')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue