fix: skip matching rule with 'enforce'

backports #1680
parent e081dc4a
...@@ -38,6 +38,10 @@ class VueLoaderPlugin { ...@@ -38,6 +38,10 @@ class VueLoaderPlugin {
let vueRules = [] let vueRules = []
for (const rawRule of rules) { for (const rawRule of rules) {
// skip rules with 'enforce'. eg. rule for eslint-loader
if (rawRule.enforce) {
continue
}
// skip the `include` check when locating the vue rule // skip the `include` check when locating the vue rule
const clonedRawRule = Object.assign({}, rawRule) const clonedRawRule = Object.assign({}, rawRule)
delete clonedRawRule.include delete clonedRawRule.include
......
...@@ -241,6 +241,20 @@ test('support rules with oneOf', async () => { ...@@ -241,6 +241,20 @@ test('support rules with oneOf', async () => {
}) })
}) })
test('should work with eslint loader', async () => {
// TODO:
return new Promise(resolve => {
bundle({
entry: 'basic.vue',
modify: config => {
config.module.rules.unshift({
test: /\.vue$/, loader: 'vue-loader', enforce: 'pre'
})
}
}, () => resolve())
})
})
// TODO // TODO
// test('multiple rule definitions', done => { // test('multiple rule definitions', done => {
// mockBundleAndRun({ // mockBundleAndRun({
......
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