diff --git a/packages/@vue/cli-service/lib/webpack/SafariNomoduleFixPlugin.js b/packages/@vue/cli-service/lib/webpack/SafariNomoduleFixPlugin.js index fef45a6416..2d4621e96b 100644 --- a/packages/@vue/cli-service/lib/webpack/SafariNomoduleFixPlugin.js +++ b/packages/@vue/cli-service/lib/webpack/SafariNomoduleFixPlugin.js @@ -23,6 +23,9 @@ class SafariNomoduleFixPlugin { if (!needsSafariFix) { return } + const { RawSource } = compiler.webpack + ? compiler.webpack.sources + : require('webpack-sources') const ID = 'SafariNomoduleFixPlugin' compiler.hooks.compilation.tap(ID, compilation => { @@ -40,14 +43,7 @@ class SafariNomoduleFixPlugin { // inject the fix as an external script const safariFixPath = path.join(this.jsDirectory, 'safari-nomodule-fix.js') const fullSafariFixPath = path.join(compilation.options.output.publicPath, safariFixPath) - compilation.assets[safariFixPath] = { - source: function () { - return Buffer.from(safariFix) - }, - size: function () { - return Buffer.byteLength(safariFix) - } - } + compilation.assets[safariFixPath] = new RawSource(safariFix) scriptTag = { tagName: 'script', closeTag: true, diff --git a/packages/@vue/cli-service/package.json b/packages/@vue/cli-service/package.json index 2221259a35..f8d3c7467f 100644 --- a/packages/@vue/cli-service/package.json +++ b/packages/@vue/cli-service/package.json @@ -83,7 +83,8 @@ }, "peerDependencies": { "@vue/compiler-sfc": "^3.0.0-beta.14", - "vue-template-compiler": "^2.0.0" + "vue-template-compiler": "^2.0.0", + "webpack-sources": "*" }, "peerDependenciesMeta": { "@vue/compiler-sfc": {