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