|
4 | 4 | appPaths = require('../app-paths'), |
5 | 5 | postCssConfig = require(appPaths.resolve.app('.postcssrc.js')) |
6 | 6 |
|
7 | | -function injectRule (chain, pref, lang, test, loader, options) { |
| 7 | +function injectRule (chain, pref, lang, test, loader, loaderOptions) { |
8 | 8 | const baseRule = chain.module.rule(lang).test(test) |
9 | 9 |
|
10 | 10 | // rules for <style lang="module"> |
@@ -37,7 +37,7 @@ function injectRule (chain, pref, lang, test, loader, options) { |
37 | 37 | 1 + // stylePostLoader injected by vue-loader |
38 | 38 | 1 + // postCSS loader |
39 | 39 | (!pref.extract && pref.minify ? 1 : 0) + // postCSS with cssnano |
40 | | - (loader ? 1 : 0), |
| 40 | + (loader ? (loader === 'stylus-loader' ? 2 : 1) : 0), |
41 | 41 | sourceMap: pref.sourceMap |
42 | 42 | } |
43 | 43 |
|
@@ -86,8 +86,19 @@ function injectRule (chain, pref, lang, test, loader, options) { |
86 | 86 | .loader(loader) |
87 | 87 | .options(Object.assign( |
88 | 88 | { sourceMap: pref.sourceMap }, |
89 | | - options |
| 89 | + loaderOptions |
90 | 90 | )) |
| 91 | + |
| 92 | + if (loader === 'stylus-loader') { |
| 93 | + // inject Stylus variables automatically |
| 94 | + rule.use('style-resources-loader') |
| 95 | + .loader('style-resources-loader') |
| 96 | + .options({ |
| 97 | + patterns: [ |
| 98 | + appPaths.resolve.app(`.quasar/app.quasar-variables.styl`) |
| 99 | + ] |
| 100 | + }) |
| 101 | + } |
91 | 102 | } |
92 | 103 | } |
93 | 104 | } |
|
0 commit comments