-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathvue.config.js
60 lines (56 loc) · 2.01 KB
/
vue.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const VuetifyLoaderPlugin = require('vuetify-loader/lib/plugin');
function enableShadowCss(config) {
const configs = [
// Required to explicitly call the __inject__ function exported by
// vue-style-loader on vue mounting
// (though the shadow DOM should be created and marked
// first by the main js or the style injection will fail)
config.module.rule('vue').use('vue-loader'),
];
const ruleSets = ['css', 'postcss', 'scss', 'sass', 'less', 'stylus'];
const ruleNames = ['vue-modules', 'vue', 'normal-modules', 'normal'];
// console.info('**** config.module.rules **** ');
// console.info(config.module.rules.store.keys());
ruleSets.forEach((ruleSet) => {
if (config.module.rules.store.has(ruleSet)) {
// console.info(`**** config.module.rule(${ruleSet}) names: `);
// console.info(config.module.rule(ruleSet).oneOfs.store.keys());
ruleNames.forEach((rName) => {
if (config.module.rule(ruleSet).oneOfs.store.has(rName)) {
// console.info(`**** config.module.rule(${ruleSet}).oneOf(${rName}) uses: `);
// console.info(config.module.rule(ruleSet).oneOf(rName).uses.store.keys());
if (config.module.rule(ruleSet).oneOf(rName).uses.store.has('vue-style-loader')) {
// console.info(`*** vue-style-loader found in rule(${ruleSet}).oneOf(${rName})!`);
configs.push(config.module.rule(ruleSet).oneOf(rName).use('vue-style-loader'));
}
}
});
}
});
if (!process.env.BUILD_MODE) {
process.env.BUILD_MODE = config.store.get('mode');
}
configs.forEach((c) => c.tap((options) => {
// eslint-disable-next-line no-param-reassign
options.shadowMode = true;
return options;
}));
}
module.exports = {
configureWebpack: {
devtool: 'source-map',
plugins: [
new VuetifyLoaderPlugin(),
],
},
chainWebpack:
(config) => {
// config.resolve.symlinks(false);
enableShadowCss(config);
},
css: {
sourceMap: true,
extract: false,
// modules: true,
},
};