Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kirlovon/simple-ssr
Universal server-side rendering implementation for Node.js
https://github.com/kirlovon/simple-ssr
module nodejs npm puppeteer pwa react server-side-rendering simple spa ssr typescript vue
Last synced: about 2 months ago
JSON representation
Universal server-side rendering implementation for Node.js
- Host: GitHub
- URL: https://github.com/kirlovon/simple-ssr
- Owner: Kirlovon
- License: mit
- Created: 2018-06-19T18:26:15.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-02-11T00:31:26.000Z (almost 3 years ago)
- Last Synced: 2024-04-24T13:16:31.854Z (8 months ago)
- Topics: module, nodejs, npm, puppeteer, pwa, react, server-side-rendering, simple, spa, ssr, typescript, vue
- Language: JavaScript
- Homepage: https://npm.im/simple-ssr
- Size: 2.07 MB
- Stars: 17
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## What is it?
Universal server-side rendering implementation for Node.js. Powered by [Puppeteer](https://github.com/GoogleChrome/puppeteer).
This library allows you to preload your web applications on the server side, and send rendered data to the user._In simple terms, this module translates this:_
```htmldocument.getElementById('app').innerHTML = 'Hello, world!';
```
_To this:_
```htmlHello, world!document.getElementById('app').innerHTML = 'Hello, world!';
```
*Note: The minimum supported Node version is **Node 7.x***## Features
* Simplifies crawlers work with your **Single Page Applications** or **Progressive Web Apps**.
* Allows you to cache data, optimizing the server-side rendering process.
* Preload your web applications on the server-side.
* TypeScript support.## Installation
Installation from the [NPM](https://www.npmjs.com/package/simple-ssr) repository:
```
npm install simple-ssr --save
```## Example
```javascript
const simpleSSR = require('simple-ssr');// Puppeteer instance
simpleSSR.browser;// Enable requests filtering ( Default: true )
simpleSSR.filterRequests = true;// List of useless for DOM rendering resources
simpleSSR.blockedRequest = ['stylesheet', 'image'];(async() => {
// Put there Puppeteer config
await simpleSSR.start({ headless: true });let result = await simpleSSR.render('http://example.com/', {
// Rendering timeout
timeout: 1000,// When to consider navigation succeeded.
waitUntil: 'load',// DOM target to wait for
domTarget: ['body', 'h1']
});console.log(result.url) // 'http://example.com/'
console.log(result.time) // 10000
console.log(result.html) // '...'
})();
```