Skip to content

Commit bffacd5

Browse files
committed
fix: prioritize .vue rules in plugin (fix #1246)
1 parent 4359bf3 commit bffacd5

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

lib/plugin.js

+12-6
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,23 @@ module.exports = class VueLoaderPlugin {
99
// use webpack's RuleSet utility to normalize user rules
1010
const rawNormalizedRules = new RuleSet(rawRules).rules
1111

12-
// find the rule that applies to vue files
13-
const vueRuleIndex = rawRules.findIndex((rule, i) => {
12+
const createMatcher = fakeFile => (rule, i) => {
1413
// #1201 we need to skip the `include` check when locating the vue rule
1514
const clone = Object.assign({}, rule)
1615
delete clone.include
1716
const normalized = RuleSet.normalizeRule(clone, {}, '')
18-
return !rule.enforce && normalized.resource && (
19-
normalized.resource(`foo.vue`) ||
20-
normalized.resource(`foo.vue.html`)
17+
return (
18+
!rule.enforce &&
19+
normalized.resource &&
20+
normalized.resource(fakeFile)
2121
)
22-
})
22+
}
23+
24+
// find the rule that applies to vue files
25+
let vueRuleIndex = rawRules.findIndex(createMatcher(`foo.vue`))
26+
if (vueRuleIndex < 0) {
27+
vueRuleIndex = rawRules.findIndex(createMatcher(`foo.vue.html`))
28+
}
2329
const vueRule = rawRules[vueRuleIndex]
2430

2531
if (!vueRule) {

0 commit comments

Comments
 (0)