{"id":16114708,"url":"https://github.com/solarliner/vue-cli-plugin-prerender-spa","last_synced_at":"2025-09-06T22:37:13.713Z","repository":{"id":32872907,"uuid":"144466015","full_name":"SolarLiner/vue-cli-plugin-prerender-spa","owner":"SolarLiner","description":"Boost SEO by prerendering your Vue application. Powered by prerender-spa-plugin.","archived":false,"fork":false,"pushed_at":"2023-01-03T23:16:21.000Z","size":281,"stargazers_count":173,"open_issues_count":47,"forks_count":25,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-05-26T01:07:51.683Z","etag":null,"topics":["cli","plugin","pre-rendering","vuejs"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/vue-cli-plugin-prerender-spa","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SolarLiner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-12T12:47:22.000Z","updated_at":"2025-02-28T19:20:24.000Z","dependencies_parsed_at":"2023-01-14T22:29:57.228Z","dependency_job_id":null,"html_url":"https://github.com/SolarLiner/vue-cli-plugin-prerender-spa","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/SolarLiner/vue-cli-plugin-prerender-spa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fvue-cli-plugin-prerender-spa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fvue-cli-plugin-prerender-spa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fvue-cli-plugin-prerender-spa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fvue-cli-plugin-prerender-spa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolarLiner","download_url":"https://codeload.github.com/SolarLiner/vue-cli-plugin-prerender-spa/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fvue-cli-plugin-prerender-spa/sbom","scorecard":{"id":132008,"data":{"date":"2025-08-04","repo":{"name":"github.com/SolarLiner/vue-cli-plugin-prerender-spa","commit":"9e16440ebbe266c783a4b7a806f3eb1399c3570d"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":1.9,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 4/24 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 1.1.6 not signed: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/18875286","Warn: release artifact 1.1.5 not signed: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/15820769","Warn: release artifact 1.1.3 not signed: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/15043674","Warn: release artifact 1.1.2 not signed: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/14986537","Warn: release artifact 1.1.1 not signed: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/14950364","Warn: release artifact 1.1.6 does not have provenance: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/18875286","Warn: release artifact 1.1.5 does not have provenance: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/15820769","Warn: release artifact 1.1.3 does not have provenance: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/15043674","Warn: release artifact 1.1.2 does not have provenance: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/14986537","Warn: release artifact 1.1.1 does not have provenance: https://api.github.com/repos/SolarLiner/vue-cli-plugin-prerender-spa/releases/14950364"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during GetBranch(master): error during branchesHandler.query: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"50 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m","Warn: Project is vulnerable to: GHSA-6x33-pw7p-hmpq","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-pc5p-h8pf-mvwp","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-c2gp-86p4-5935","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T05:25:52.593Z","repository_id":32872907,"created_at":"2025-08-16T05:25:52.594Z","updated_at":"2025-08-16T05:25:52.594Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273973964,"owners_count":25200578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","plugin","pre-rendering","vuejs"],"created_at":"2024-10-09T20:15:31.622Z","updated_at":"2025-09-06T22:37:13.692Z","avatar_url":"https://github.com/SolarLiner.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vue-cli-plugin-prerender-spa\n\nAdd `prerender-spa-plugin` into your Vue application with zero configuration.\n\n![](https://img.shields.io/david/solarliner/vue-cli-plugin-prerender-spa.svg)\n![](https://img.shields.io/david/dev/solarliner/vue-cli-plugin-prerender-spa.svg)\n![](https://img.shields.io/npm/v/vue-cli-plugin-prerender-spa.svg)\n![](https://img.shields.io/github/commits-since/solarliner/vue-cli-plugin-prerender-spa/1.1.5.svg)\n\n**Looking for a co-maintainer**: I'm continuing to maintain this project, hoever\nI still would like help on some of the issues, and generally to help me keep this\nplugin going as it's getting more and more popular. If you think you can help,\nfile and issue for maintainship!\n\n**Support requests**: Vue has a Discord server and I often lurk in there. And\nwhile there is a support label in the Issues, GitHub isn't the place for support\nrequests and should be directed to me in the\n[Vue Land Discord server](https://vue-land.js.org).\n\n## Install\n\nAdd prerendering to your Vue application with:\n\n```bash\nvue add prerender-spa\n```\n\nor by searching for `prerender-spa` in the Vue UI plugins.\n\nYou'll be asked a few questions, detailed below, to which the default answers\nare the most common options.\n\nThe main option to fit to your needs is the **list of routes to pre-render**.\nSpecify them as a comma-separated list:\n\n```bash\n? Which routes to pre-render? (list them separated by a comma) /,/about,/contact\n```\n\n## Options list\n\n### Pre-rendered routes\n\n```bash\n? Which routes to pre-render? (list them separated by a comma) /\n```\n\nSpecify a list of routes to pre-render. By default only the index page is pre-\nrendered, which should cover most SPAs. If your project uses vue-router, you\ncan specify a list of routes that do not depend on dynamic content (like user\nuploaded data, public profiles, etc.). For example you can add your about page\nas well as a contact page - those will load faster, and will be indexed by bots\nwho do not execute JavaScript, improving Search Engines rankings.\n\nNote that if you want to also pre-render user generated content, you _will_\nhave to switch to Server-Side Rendering, there are no other options.\n\n#### What it does to your project\n\nThe list of routes is split into an array and passed into the Webpack plugin.\nThe routes aren't checked for existence or even duplicates, just split into an\narray and sent to the `PrerenderSPAPlugin` instance.\n\n### Event-triggered snapshot\n\n```bash\n? Use a render event to trigger the snapshot? Yes\n```\n\nUse a document event to signal `prerender-spa-plugin` to trigger a snapshot of\nthe DOM and save it. By default the renderer waits until `DOMContentLoaded` to\ntake a snapshot of the DOM. But it is still recommended that you control the\nsnapshot trigger - no surprise waiting for hours for your build before\nrealizing what's happening.\n\n#### What it does to your project\n\nWhen enabling the event-based snapshot trigger, it will tell\n`PrerenderSPAPlugin` to listen for an `x-app-rendered` event. Your main file\nis then modified to add a `mounted()` hook where the event will fire. Note that\nit doesn't check if the hook is already present, nor does it parses the file;\nit just looks for the line starting with `render:` (minus whitespaces) and\ninserts the `mounted()` hook below. If you already have the hook set up, or if\nyour `render()` function on the main file is longer than one line, it will break\nyour Vue entrypoint. A better injection routine is planned, but for now, it\ncovers a vast majority of projects where the main file isn't touched.\n\n### Use a headless browser for rendering\n\n```bash\n? Use a headless browser to render the application? (recommended) Yes\n```\n\nThis option is there for debugging purposes, but **should be left enabled**\notherwise. Not using a headless browser will open a Chrome window when building\nwith your app running inside, then close once the snapshot has been taken.\nSince the plugin configuration object isn't available, it is available here.\n\n#### What it does to your project\n\nThe `headless` value of the configuration object is set to the answer to the\nquestion.\n\n### Only pre-render for production builds\n\n```bash\n? Only use prerendering for production builds? (recommended) Yes\n```\n\nOnly load the pre-rendering plugin when building for production. This is\nstrongly recommended as the plugin, spawning an instance of the Chrome browser,\nadds significant time to the build process. Development builds should be snappy\nand not memory-intensive; which is exactly what this plugin does to your build.\n\nHowever, there may be cases where you want to test the pre-rendering itself,\nand switching to a production build isn't the solution - you may then turn off\nthat option.\n\n### Indirect options\n\n#### Parallel / Mutli-threaded\n\nThis option is configured from within the Vue CLI itself, but serves to a whole\nhost of plugins to determine whether to turn on parallel jobs / multi-threading.\n\nThis plugin uses it to tell `prerender-spa-plugin` to render pages concurrently\n(meaning in parallel) or not by setting the `maxConcurrentRoutes` parameter to\neither 1 or 4, if the build is respectively single-threaded or multi-threaded.\n\n### Custom configuration\n\nAfter being invoked, the plugin saves a file named `.prerender-spa.json` in the\nroot directory of the project; where you can specify custom options for the\nPuppeteer renderer. It will be merged, and its options will overwrite those set\nby the plugin itself.\n\nOther way to set custom configuration for the Puppeteer renderer is to use `customRendererConfig`\ndictionary of possible [Puppeteer launch options](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteerlaunchoptions).\n\nExample configuration of debugging your site with Chrome DevTools opened automatically:\n\n```js\n// vue.config.js\n\nmodule.exports = {\n  pluginOptions: {\n    prerenderSpa: {\n      registry: undefined,\n      renderRoutes: [\n        '/',\n        '/about'\n      ],\n      useRenderEvent: true,\n      onlyProduction: true,\n      \n      headless: false, // \u003c- this could also be inside the customRendererConfig\n      customRendererConfig: \n      {\n        args: [\"--auto-open-devtools-for-tabs\"]\n      }\n    }\n  }\n}\n```\n\n### User post processing function\n\nPupeteer allows to postprocess the HTML after it's been snapshot, and the plugin\nallows you to provide your own function if you need to.\n\nAdd a `postProcess` option into your `vue.config.js` file to provide a custom\npost-processing function to run on every build.\n\nExample configuration:\n\n```js\n// vue.config.js\n\nmodule.exports = {\n  pluginOptions: {\n    prerenderSpa: {\n      registry: undefined,\n      renderRoutes: [\n        '/',\n        '/about'\n      ],\n      useRenderEvent: true,\n      headless: true,\n      onlyProduction: true,\n      postProcess: route =\u003e {\n        // Defer scripts and tell Vue it's been server rendered to trigger hydration\n        route.html = route.html\n          .replace(/\u003cscript (.*?)\u003e/g, '\u003cscript $1 defer\u003e')\n          .replace('id=\"app\"', 'id=\"app\" data-server-rendered=\"true\"');\n        return route;\n      }\n    }\n  }\n}\n```\n\n## Contributing\n\nYou are very welcome to contribute. To ask for a feature, or submit a bug, use\nthe Issues list. If you want to contribute a feature yourself, first submit an\nIssue, work on your code, and add a Pull Request, referencing your issue in the\nPR message. This way the isse can serve as a mean to discuss the feature, and\nthe Pull Request is where we can review the code and talk specificities.\n\nIn all cases, follow the templates carefully, in order to maximize information\nthroughput.\n\n## Notices\n\n### Backend routing configuration for deployments\n\nSince the `index.html` is now (most likely, depending on your list of routes)\npre-rendered, pointing to it from another path will lead to whiteflashing as\nthe pre-rendered content (of the index page) will not match the expected\ncontent of the route (say from an about page). For this reason, the plugin\noutputs another file called `app.html` that doesn't get pre-rendered. **For\nbetter user experience, it is recommended to route non-prerendered routes to\nthis file** instead of the default `index.html`.\n\nHere's an example nginx configuration snippet:\n\n```nginx\nlocation / {\ntry_files $uri $uri/index.html $uri.html /app.html;\n}\n```\n\nAnd an example Firebase configuration (taken from https://stackoverflow.com/a/51218261):\n\n```json\n\"rewrites\": [\n  {\n    \"source\": \"**\",\n    \"destination\": \"/app.html\"\n  },\n  {\n    \"source\": \"/\",\n    \"destination\": \"/index.html\"\n  }\n]\n```\n\n### CI/CD workflows\n\nBecause the `prerender-spa-plugin` uses a headless Chrome instance, your\nregular `node:latest` Docker image will not chug your build correctly; you need\nsystem dependencies and configuration that might not be efficient to add to the\njob itself - rather, it is recommended to switch to a Node.js + Puppeteer\nimage where you can just use your `install \u0026\u0026 build` workflow without any\nadditional configuration. I personally use the `alekzonder/puppeteer` image.\n\nIf you do decide on using alekzonder/puppeteer and you want to install global npm packages. The following commands can be used prior to the installation of your required global package to ensure that you do not receive an `EACCES: permission denied, access '/usr/local/lib/node_modules'` error. I have tested this using Gitlab CI.\n\n```\n- mkdir ~/.npm-global\n- npm config set prefix '~/.npm-global'\n- npm install -g @vue/cli-service-global\n```\n\n### Compatibility with other Vue CLI plugins\n\nThis plugin should be compatible with any plugin that doesn't add a `mounted()`\nhook into the Vue entrypoint in your `main.{js,ts}` file, as this is the only\nfile it updates, and only if you choose an event-based snapshot trigger.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarliner%2Fvue-cli-plugin-prerender-spa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolarliner%2Fvue-cli-plugin-prerender-spa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarliner%2Fvue-cli-plugin-prerender-spa/lists"}