Ocelot-Social/vue.config.js
Alina Beck 5d6391f505 use babel loader to transpile svgs
IE and Edge had trouble loading the Human Connection network
because object spread operators were left in the minified code
using babel-loader for svgs (as suggested in the vue-svg-loader docs)
hopefully solves this issue
2019-12-05 13:07:45 +03:00

86 lines
2.0 KiB
JavaScript

const path = require('path')
const MergeIntoSingleFilePlugin = require('webpack-merge-and-include-globally');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
module.exports = {
outputDir: process.env.BUILD === 'library'
? path.resolve(__dirname, "./dist")
: path.resolve(__dirname, "./docs"),
css: {
loaderOptions: {
sass: {
prependData: '@import "@@/styles/shared.scss";'
}
}
},
configureWebpack: {
devServer: {
historyApiFallback: true
},
resolve: {
alias: {
vue$: 'vue/dist/vue.common',
'@@': path.resolve(__dirname, './src/system')
}
},
module: {
rules: [
{
resourceQuery: /blockType=docs/,
loader: process.env.BUILD === 'library'
? require.resolve('./src/loader/docs-trim-loader.js')
: require.resolve('./src/loader/docs-loader.js')
},
]
},
plugins: process.env.BUILD === 'library'
? [
new BundleAnalyzerPlugin({
analyzerMode: 'static',
openAnalyzer: false
}),
new MergeIntoSingleFilePlugin({
files: {
"shared.scss": [
path.resolve(__dirname, './src/system/tokens/generated/tokens.scss'),
path.resolve(__dirname, './src/system/styles/shared/**/*.scss')
]
}
})
]
: []
},
chainWebpack: config => {
config.module
.rule('eslint')
.use('eslint-loader')
.options({
fix: true
})
const svgRule = config.module.rule('svg')
svgRule.uses.clear()
svgRule
.use('babel-loader')
.loader('babel-loader')
.end()
.use('vue-svg-loader')
.loader('vue-svg-loader')
.options({
svgo: {
plugins: [
{
removeViewBox: false
},
{
removeDimensions: true
}
]
}
})
}
}