diff --git a/package-lock.json b/package-lock.json index b75ecb56f..01f4fcc30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,6 +54,7 @@ "@vue/cli-plugin-unit-jest": "^5.0.8", "@vue/cli-service": "^5.0.8", "@vue/eslint-config-airbnb": "^7.0.0", + "@vue/preload-webpack-plugin": "^2.0.0", "@vue/test-utils": "^1.3.5", "@vue/vue2-jest": "^27.0.0", "babel-jest": "^27.5.1", @@ -5539,6 +5540,19 @@ "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@vue/preload-webpack-plugin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-2.0.0.tgz", + "integrity": "sha512-RoorRB50WehYbsiWu497q8egZBYlrvOo9KBUG41uth4O023Cbs+7POLm9uw2CAiViBAIhvpw1Y4w4i+MZxOfXw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "html-webpack-plugin": "^5.0.0 || ^4.5.1", + "webpack": "^5.20.0 || ^4.1.0" + } + }, "node_modules/@vue/test-utils": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.3.5.tgz", diff --git a/package.json b/package.json index 735a1462e..36eaba35d 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "@vue/cli-plugin-unit-jest": "^5.0.8", "@vue/cli-service": "^5.0.8", "@vue/eslint-config-airbnb": "^7.0.0", + "@vue/preload-webpack-plugin": "^2.0.0", "@vue/test-utils": "^1.3.5", "@vue/vue2-jest": "^27.0.0", "babel-jest": "^27.5.1", diff --git a/vue.config.js b/vue.config.js index 87a4b8b5d..ae7175e16 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,6 +1,7 @@ const path = require('path'); const webpack = require('webpack'); const addClassesToSVGElement = require('svgo/plugins/addClassesToSVGElement').fn; +const PreloadPlugin = require('@vue/preload-webpack-plugin'); const { version: sdkVersion } = require('./node_modules/@aeternity/aepp-sdk/package.json'); process.env.VUE_APP_VERSION = process.env.npm_package_version; @@ -82,6 +83,12 @@ module.exports = { config.plugins.delete('pwa'); config.plugins.delete('workbox'); } + + // TODO: remove after fixing https://github.com/vuejs/vue-cli/issues/7206 + config.plugin('prefetch').after('html').use(PreloadPlugin, [{ + rel: 'prefetch', + include: 'asyncChunks', + }]); }, pwa: { workboxPluginMode: 'InjectManifest',