Skip to content

Commit 9a99f29

Browse files
committed
fix: clone rules before adding oneOf
fixes #186
1 parent 22e2492 commit 9a99f29

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

dev5/webpack.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ module.exports = {
8888
}
8989

9090
if (isProd) {
91-
module.exports.devtool = '#source-map'
91+
module.exports.devtool = 'source-map'
9292
// http://vue-loader.vuejs.org/en/workflow/production.html
9393
module.exports.plugins = (module.exports.plugins || []).concat([
9494
new webpack.DefinePlugin({

lib/getVueRules.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ module.exports = {
1515
const rules = compiler.options.module.rules
1616

1717
// Naive approach without RuleSet or RuleSetCompiler
18-
rules.map((rule, i) => rule.use && rule.use.find && rule.use.find(isVueLoader) ? i : null).filter(v => v != null)
19-
20-
// find the rules that apply to vue files
21-
return rules.filter(rule => rule.use && rule.use.find && rule.use.find(isVueLoader))
18+
return rules.map((rule, index) => (
19+
rule.use && rule.use.find && rule.use.find(isVueLoader)
20+
? { rule: { ...rule }, index }
21+
: null
22+
)).filter(v => v != null)
2223
}
2324
}

lib/plugin.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ class VuetifyLoaderPlugin {
2020

2121
vueRules.forEach(this.updateVueRule.bind(this))
2222

23+
const rules = [...compiler.options.module.rules]
24+
vueRules.forEach(({ rule, index }) => {
25+
rules[index] = rule
26+
})
27+
compiler.options.module.rules = rules
28+
2329
if (this.options.progressiveImages) {
2430
const options = typeof this.options.progressiveImages === 'boolean'
2531
? undefined
@@ -52,7 +58,7 @@ class VuetifyLoaderPlugin {
5258
}
5359
}
5460

55-
updateVueRule (rule) {
61+
updateVueRule ({ rule }) {
5662
if (this.options.progressiveImages) {
5763
const vueLoaderOptions = rule.use.find(isVueLoader).options
5864
vueLoaderOptions.compilerOptions = vueLoaderOptions.compilerOptions || {}

0 commit comments

Comments
 (0)