Skip to content

Commit 5b838a1

Browse files
Jitendra ThakurJitendra Thakur
authored andcommitted
Updated solution based on lazy loading
1 parent c20b87e commit 5b838a1

File tree

7 files changed

+4
-72
lines changed

7 files changed

+4
-72
lines changed

README.md

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,12 @@
11
# vue-conditional-css-import
22
Switching css file based on condition like theme name, brand name etc. Using this solution, you will easily switch css based on conditon.
33

4-
## Require module to enable conditional css.
5-
1) "node-sass"
6-
2) "style-loader"
7-
8-
## This feature is enabled in ./vue.config.js.
9-
Adding prefix "Useable" in your css file like this "theme.useable.scss"
10-
```
11-
module.exports = {
12-
chainWebpack: config => {
13-
config.module.rule('scss').exclude.add(/\.useable.scss$/)
14-
15-
config.module
16-
.rule('scss-useable')
17-
.test(/\.useable.scss$/)
18-
.use('style-loader/useable')
19-
.loader('style-loader/useable')
20-
.end()
21-
.use('css-loader')
22-
.loader('css-loader')
23-
.end()
24-
.use('postcss-loader')
25-
.loader('postcss-loader')
26-
.end()
27-
.use('sass-loader')
28-
.loader('sass-loader')
29-
}
30-
}
31-
```
32-
Refereance url :[Useable Reference](https://webpack.js.org/loaders/style-loader/#useable).
33-
[chaining-advanced Reference](https://cli.vuejs.org/guide/webpack.html#chaining-advanced)
34-
35-
### Create css javascript file for your css like "blue-theme.useable.scss" & "red-theme.useable.scss"
36-
```
37-
import blueStyles from '../../scss/blue-theme.useable.scss'
38-
export default blueStyles.use()
39-
```
40-
Styles are used: blueStyles.use()
41-
Styles are removed: blueStyles.unuse()
42-
434
### main.js or compnent.js
445
```
456
// Split each import into a separate chunk (https://router.vuejs.org/guide/advanced/lazy-loading.html).
46-
const redThemecss = () => import('./lib/css/red-theme')
47-
const blueThemecss = () => import('./lib/css/blue-theme')
7+
const redThemecss = () => import('@/scss/red-theme.scss')
8+
const blueThemecss = () => import('@/scss/blue-theme.scss')
489
49-
// This means they can be loaded conditionally (https://webpack.js.org/loaders/style-loader/#useable).
50-
// This feature is enabled in ./vue.config.js > chainWebpack.
5110
Vue.config.productionTip = false
5211
switch ('RED') {
5312
case 'RED': {

src/lib/css/blue-theme.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/lib/css/red-theme.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/main.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ import App from './App.vue'
33
import router from './router'
44

55
// Split each import into a separate chunk (https://router.vuejs.org/guide/advanced/lazy-loading.html).
6-
const redThemecss = () => import('./lib/css/red-theme')
7-
const blueThemecss = () => import('./lib/css/blue-theme')
6+
const redThemecss = () => import('@/scss/red-theme.scss')
7+
const blueThemecss = () => import('@/scss/blue-theme.scss')
88

9-
// This means they can be loaded conditionally (https://webpack.js.org/loaders/style-loader/#useable).
10-
// This feature is enabled in ./vue.config.js > chainWebpack.
119
Vue.config.productionTip = false
1210
switch ('RED') {
1311
case 'RED': {
File renamed without changes.
File renamed without changes.

vue.config.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)