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