diff --git a/lib/plugin-webpack5.js b/lib/plugin-webpack5.js index c24fb58fc..431fdf06f 100644 --- a/lib/plugin-webpack5.js +++ b/lib/plugin-webpack5.js @@ -38,6 +38,10 @@ class VueLoaderPlugin { let vueRules = [] 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 const clonedRawRule = Object.assign({}, rawRule) delete clonedRawRule.include diff --git a/test/advanced.spec.js b/test/advanced.spec.js index 5d57e138c..788408e83 100644 --- a/test/advanced.spec.js +++ b/test/advanced.spec.js @@ -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 // test('multiple rule definitions', done => { // mockBundleAndRun({