Skip to content

Commit 841e42b

Browse files
committed
feat: add choice to inject vars, funcs & mixins
the user can choice if inject bootstrap's scss vars, functions & mixins in sfc components
1 parent c843b43 commit 841e42b

File tree

3 files changed

+25
-14
lines changed

3 files changed

+25
-14
lines changed

bootstrapCssAbstractsImports.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports = [
2+
'@import "~bootstrap/scss/_functions.scss"',
3+
'@import "~@/assets/scss/vendors/bootstrap-vue/_custom.scss"',
4+
'@import "~bootstrap/scss/_variables.scss"',
5+
'@import "~bootstrap/scss/_mixins.scss"',
6+
'@import "~bootstrap-vue/src/_variables.scss"',
7+
]

index.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
const { merge } = require('lodash/object')
2+
const bootstrapCssAbstractsImports = require('./bootstrapCssAbstractsImports')
3+
14
module.exports = (api, opts) => {
25
// Resolve asset references from components
36
api.chainWebpack(config => {
@@ -29,23 +32,17 @@ module.exports = (api, opts) => {
2932
})
3033
})
3134

32-
//Add bootstrap's variables globally
33-
const bootstrapVueVarImports = [
34-
'@import "~bootstrap/scss/_functions.scss"',
35-
'@import "~@/assets/scss/vendors/bootstrap-vue/_custom.scss"',
36-
'@import "~bootstrap/scss/_variables.scss"',
37-
'@import "~bootstrap/scss/_mixins.scss"',
38-
'@import "~bootstrap-vue/src/_variables.scss"',
39-
]
40-
41-
//add custom variables
42-
opts.css.loaderOptions = {
35+
//Add bootstrap's variables/functions/mixins globally
36+
if(opts.useScss && opts.injectAbstracts){
37+
merge(opts.css, {
38+
loaderOptions:{
4339
sass: {
44-
additionalData: bootstrapVueVarImports.join('\n')
40+
additionalData: bootstrapCssAbstractsImports.join('\n')
4541
},
4642
scss: {
47-
additionalData: [...bootstrapVueVarImports, ''].join(';\n')
43+
additionalData: [...bootstrapCssAbstractsImports, ''].join(';\n')
4844
}
4945
}
50-
46+
})
47+
}
5148
}

prompts.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,12 @@ module.exports = [
1010
type: 'confirm',
1111
default: false,
1212
message: 'Use scss?'
13+
},
14+
{
15+
when: answers => !!answers.useScss,
16+
name: 'injectAbstracts',
17+
type: 'confirm',
18+
default: false,
19+
message: 'Would you like to inject vars, functions and mixins in all SFC components?'
1320
}
1421
]

0 commit comments

Comments
 (0)