{"id":26065,"library":"parasails","title":"parasails","description":"parasails is a lightweight (2.96KB gzipped) Vue.js-based framework for building multi-page applications without Webpack, Babel, or other build tools. Version 0.9.3 is the latest stable release. It provides structures for pages, components, utilities, and constants, with optional integrations for Vue Router and jQuery. Designed primarily for use with Sails.js, it offers a simpler alternative to full SPA frameworks by enabling server-rendered pages with client-side interactivity.","status":"active","version":"0.9.3","language":"javascript","source_language":"en","source_url":"https://github.com/mikermcneil/parasails","tags":["javascript","parasails","vue.js-framework","component-framework","vue.js","ui","vue","sails.js","browser"],"install":[{"cmd":"npm install parasails","lang":"bash","label":"npm"},{"cmd":"yarn add parasails","lang":"bash","label":"yarn"},{"cmd":"pnpm add parasails","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Built on top of Vue.js for reactivity and component system.","package":"vue","optional":false}],"imports":[{"note":"For browser usage, include as a script tag; parasails is not ESM-only, but the recommended way is via ES modules if bundling.","wrong":"const parasails = require('parasails')","symbol":"parasails","correct":"import parasails from 'parasails'"},{"note":"registerPage is a method on the default export, not a named import.","wrong":"parasails.registerPage('pageName', { ... })","symbol":"registerPage","correct":"parasails.registerPage('pageName', { ... })"},{"note":"Same as registerPage; it's a method on the default export.","wrong":"import { registerComponent } from 'parasails'","symbol":"registerComponent","correct":"parasails.registerComponent('componentName', { ... })"}],"quickstart":{"code":"<div id=\"my-page\" v-cloak>\n  <h1>{{ message }}</h1>\n  <button @click=\"updateMessage\">Click me</button>\n</div>\n<script type=\"module\">\n  import parasails from 'parasails';\n  parasails.registerPage('my-page', {\n    data: {\n      message: 'Hello parasails!'\n    },\n    methods: {\n      updateMessage: function() {\n        this.message = 'You clicked the button!';\n      }\n    }\n  });\n</script>","lang":"javascript","description":"Shows a basic parasails page with Vue-like data and methods, no build tools required."},"warnings":[{"fix":"Include Vue via a script tag before parasails, or import it in your module bundler setup.","message":"parasails requires Vue.js to be available globally (window.Vue) or imported as a module. Ensure Vue is loaded before parasails.","severity":"gotcha","affected_versions":">=0.7.0"},{"fix":"Include jQuery via a script tag or import it if you need those methods.","message":"The jQuery integration for $get, $find, $focus methods requires jQuery to be loaded. Without jQuery, these methods will not work.","severity":"gotcha","affected_versions":">=0.7.0"},{"fix":"Ensure your HTML contains <div id=\"pageName\"> where pageName matches the string passed to registerPage.","message":"parasails pages rely on having an element with an id matching the page name. The page will not mount if the element is missing or the id does not match.","severity":"gotcha","affected_versions":">=0.7.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Check that parasails is correctly imported via script tag or ES module, and that it is available as a default export.","cause":"parasails is not loaded or the import is incorrect.","error":"Cannot read property 'registerPage' of undefined"},{"fix":"Load Vue.js via a script tag before parasails, or import it in your bundler.","cause":"Vue.js is not loaded before parasails.","error":"Vue is not defined"},{"fix":"Add an element with the correct id, e.g., <div id=\"pageName\">.","cause":"The HTML page does not contain an element with the id matching the registered page name.","error":"Error: [parasails] Could not find a <div> with id \"...\""}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}