Error: Cannot call .tap() on a plugin that has not yet been defined. Call plugin('html').use(<Plugin>) first.
See original GitHub issueDescribe the bug
After following instructions in README.md, running npm run build gives error: Cannot call .tap() on a plugin that has not yet been defined. Call plugin('html').use(<Plugin>) first.
To Reproduce Steps to reproduce the behavior:
- vue add prerender-spa
- Enter default answers
- Run
npm run build - See error
Expected behavior Project builds succesfully 🎉
Screenshots
-> % vue add prerender-spa
📦 Installing vue-cli-plugin-prerender-spa...
added 20 packages, removed 1 package, and audited 1376 packages in 46s
73 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
✔ Successfully installed plugin: vue-cli-plugin-prerender-spa
? Which routes to pre-render? (separate with comma) (only with Vue Router history mode) /
? Use a render event to trigger the snapshot? Yes
? Use a headless browser to render the application? (recommended) Yes
? Only use prerendering for production builds? (recommended) Yes
🚀 Invoking generator for vue-cli-plugin-prerender-spa...
📦 Installing additional dependencies...
up to date, audited 1376 packages in 2s
73 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
⚓ Running completion hooks...
✔ Successfully invoked generator for plugin: vue-cli-plugin-prerender-spa
user@iMac [11:45:57] [~/path/portfolio] [master *]
-> % npm run build
> paper_free_resume@0.1.0 build
> vue-cli-service build
✔ Building for production...
ERROR Error: Cannot call .tap() on a plugin that has not yet been defined. Call plugin('html').use(<Plugin>) first.
Error: Cannot call .tap() on a plugin that has not yet been defined. Call plugin('html').use(<Plugin>) first.
at Object.tap (/path/portfolio/node_modules/webpack-chain/src/Plugin.js:26:15)
at /path/portfolio/node_modules/vue-cli-plugin-prerender-spa/index.js:55:29
at /path/portfolio/node_modules/@vue/cli-service/lib/Service.js:236:40
at Array.forEach (<anonymous>)
at Service.resolveChainableWebpackConfig (/path/portfolio/node_modules/@vue/cli-service/lib/Service.js:236:26)
at PluginAPI.resolveChainableWebpackConfig (/path/portfolio/node_modules/@vue/cli-service/lib/PluginAPI.js:145:25)
at module.exports (/path/portfolio/node_modules/@vue/cli-service/lib/commands/build/resolveAppConfig.js:9:22)
at build (/path/portfolio/node_modules/@vue/cli-service/lib/commands/build/index.js:147:50)
at /path/portfolio/node_modules/@vue/cli-service/lib/commands/build/index.js:89:13
at Service.run (/path/portfolio/node_modules/@vue/cli-service/lib/Service.js:230:12)
at Object.<anonymous> (/path/portfolio/node_modules/@vue/cli-service/bin/vue-cli-service.js:36:9)
at Module._compile (node:internal/modules/cjs/loader:1092:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
at Module.load (node:internal/modules/cjs/loader:972:32)
at Function.Module._load (node:internal/modules/cjs/loader:813:14)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
Additional context
Package version:
"prerender-spa-plugin": "^3.2.1",
"vue-cli-plugin-prerender-spa": "~1.1.6",
Vue version:
"vue": "^2.6.11",
Vue CLI version:
-> % vue --version
@vue/cli 4.5.11
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:6
Top Results From Across the Web
Cannot call .tap() on a plugin that has not yet been defined ...
Error : Cannot call .tap() on a plugin that has not yet been defined. Call plugin( 'html' ).use(<Plugin>) first. 解决方法:.
Read more >can't add plugin to vue.config.js with configureWebpack
Because Vue already includes the DefinePlugin , you need to modify it using Webpack's chain API instead of attempting to add a new...
Read more >Error: Cannot call .tap() on a plugin that has not yet ... - 学习猿地
Error : Cannot call .tap() on a plugin that has not yet been defined. Call plugin('html').use(<Plugin>) first.
Read more >Error: Cannot call .tap() on a plugin that has not yet ... - 博客园
Error : Cannot call .tap() on a plugin that has not yet been defined. Call plugin('html').use(<Plugin>) first.
Read more >Vue upgrade 8.37->8.38 webpack issues
Error : Cannot call .tap() on a plugin that has not yet been defined. Call plugin('prefetch').use() first. at Object.tap (/Users/ ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

this repo needs love… vue pre-rendering is lacking so much support.
try this:
const html = require(‘html-webpack-plugin’) chainWebpack: config => { config .plugin(‘html’) .use(html) // when this doesnt exist it fails .tap(args => { return args })