mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 15:25:57 +00:00
86 lines
2.0 KiB
JavaScript
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: {
|
|
additionalData: '@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
|
|
}
|
|
]
|
|
}
|
|
})
|
|
}
|
|
}
|