Re-add ExtractTextPlugin

This commit is contained in:
Ramon Wenger 2021-02-09 16:38:25 +01:00
parent 1eec4e989b
commit 1f0be12486
1 changed files with 50 additions and 20 deletions

View File

@ -5,11 +5,50 @@ const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
const ExtractTextPlugin = require("extract-text-webpack-plugin")
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
const styleRule = (scss) => {
const test = scss ? /\.scss$/ : /\.css$/;
let use;
if (scss) {
use = [
'css-loader',
{
loader: 'sass-loader',
options: {
data: process.env.THEME ? `@import "styles/themes/_${process.env.THEME}.scss";` : ''
}
}
]
} else {
use = [
'css-loader'
]
}
if (process.env.NODE_ENV === 'production') {
return {
test,
loader: ExtractTextPlugin.extract({
use,
fallback: 'vue-style-loader'
})
}
} else {
return {
test,
use: [
'vue-style-loader',
...use
]
}
}
}
const createLintingRule = () => ({
test: /\.(js|vue)$/,
loader: 'eslint-loader',
@ -95,26 +134,17 @@ module.exports = {
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
},
{
test: /\.css$/,
use: [
'vue-style-loader',
'css-loader'
]
},
{
test: /\.scss$/,
use: [
'vue-style-loader',
'css-loader',
{
loader: 'sass-loader',
options: {
data: process.env.THEME ? `@import "styles/themes/_${process.env.THEME}.scss";` : ''
}
}
]
}
styleRule(false), // css rule
// {
// test: /\.css$/,
// use: [
// process.env.NODE_ENV !== 'production'
// ? 'vue-style-loader'
// : MiniCssExtractPlugin.loader,
// 'css-loader'
// ]
// },
styleRule(true) // sass rule
]
},
plugins: [