Commit bffacd5e authored by Evan You's avatar Evan You

fix: prioritize .vue rules in plugin (fix #1246)

parent 4359bf38
......@@ -9,17 +9,23 @@ module.exports = class VueLoaderPlugin {
// use webpack's RuleSet utility to normalize user rules
const rawNormalizedRules = new RuleSet(rawRules).rules
// find the rule that applies to vue files
const vueRuleIndex = rawRules.findIndex((rule, i) => {
const createMatcher = fakeFile => (rule, i) => {
// #1201 we need to skip the `include` check when locating the vue rule
const clone = Object.assign({}, rule)
delete clone.include
const normalized = RuleSet.normalizeRule(clone, {}, '')
return !rule.enforce && normalized.resource && (
normalized.resource(`foo.vue`) ||
normalized.resource(`foo.vue.html`)
return (
!rule.enforce &&
normalized.resource &&
normalized.resource(fakeFile)
)
})
}
// find the rule that applies to vue files
let vueRuleIndex = rawRules.findIndex(createMatcher(`foo.vue`))
if (vueRuleIndex < 0) {
vueRuleIndex = rawRules.findIndex(createMatcher(`foo.vue.html`))
}
const vueRule = rawRules[vueRuleIndex]
if (!vueRule) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment