From acc98749a0ac2f29d6a50a0efbfcf0f08c414189 Mon Sep 17 00:00:00 2001 From: Clark Du Date: Tue, 8 Jan 2019 14:25:49 +0000 Subject: [PATCH 1/2] feat: support webpack 5 hooks --- lib/plugin.js | 7 ++++++- package.json | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/plugin.js b/lib/plugin.js index be2019ee5..3cbbec856 100644 --- a/lib/plugin.js +++ b/lib/plugin.js @@ -10,7 +10,12 @@ class VueLoaderPlugin { if (compiler.hooks) { // webpack 4 compiler.hooks.compilation.tap(id, compilation => { - compilation.hooks.normalModuleLoader.tap(id, loaderContext => { + let { normalModuleLoader } = compilation.hooks; + if (!normalModuleLoader) { + // webpack 5 + normalModuleLoader = require('webpack/lib/NormalModule').getCompilationHooks(compilation).loader + } + normalModuleLoader.tap(id, loaderContext => { loaderContext[NS] = true }) }) diff --git a/package.json b/package.json index b983e0d9e..154b82c8d 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ }, "peerDependencies": { "css-loader": "*", - "webpack": "^4.1.0" + "webpack": "^4.1.0 || ^5.0.0" }, "dependencies": { "@vue/component-compiler-utils": "^2.4.0", From 51ae9eebfa22ff8b2323571eda215117fb180a07 Mon Sep 17 00:00:00 2001 From: Clark Du Date: Thu, 10 Jan 2019 16:31:03 +0000 Subject: [PATCH 2/2] refactor: code review changes --- lib/plugin.js | 6 ++++-- package.json | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/plugin.js b/lib/plugin.js index 3cbbec856..a5d91a2f2 100644 --- a/lib/plugin.js +++ b/lib/plugin.js @@ -10,10 +10,12 @@ class VueLoaderPlugin { if (compiler.hooks) { // webpack 4 compiler.hooks.compilation.tap(id, compilation => { - let { normalModuleLoader } = compilation.hooks; - if (!normalModuleLoader) { + let normalModuleLoader + if (Object.isFrozen(compilation.hooks)) { // webpack 5 normalModuleLoader = require('webpack/lib/NormalModule').getCompilationHooks(compilation).loader + } else { + normalModuleLoader = compilation.hooks.normalModuleLoader } normalModuleLoader.tap(id, loaderContext => { loaderContext[NS] = true diff --git a/package.json b/package.json index 154b82c8d..964510f62 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ }, "peerDependencies": { "css-loader": "*", - "webpack": "^4.1.0 || ^5.0.0" + "webpack": "^4.1.0 || ^5.0.0-0" }, "dependencies": { "@vue/component-compiler-utils": "^2.4.0",