webrender v2.2.1
webrender
Run live web and build static site
Usage
Suppose that we want to build a front-end only website with pure HTML/CSS/JS or React, Vue, whatever. Our repo may look like following folder structure:
my-project
- package.json
- src/
- assets
- css
- main.css
- theme.css
- js
- main.js
- another-modules.js
- static
- fonts
- images
- favicon.ico
- templates
- index.html
- about.html
- faq.html
- config.jsonHere the website source code is placed within src folder. However the folder name can be anything else.
templates dir is not required. If it does exist, webrender will try to parse them with nunjucks template engine. Otherwise, the HTML files located at root folder will be used.
View examples/ for reference.
In order to use webrender, let's install it:
npm i webrenderThen you can use it with command line or call it from code.
Command Line
Add these 2 commands to script section of the package.json file, for example:
"scripts": {
"run": "DEBUG=webrender:* webren run ./src",
"build": "DEBUG=webrender:* webren build ./src ./dist"
},Since now, we can run the website within src folder to view and develop it as below:
npm run devOnce everything is ok, we can build a static site into dist folder:
npm run buildProgrammatically
Run a website located at ./src folder:
const run = require('webrender/scripts/run');
run('./src');This approach is helpful to work with nodemon for auto reloading.
"scripts": {
"dev": "DEBUG=webrender:* PORT=4728 nodemon server.js -e js,css,html,json,yaml"
},You can even add more express middlewares:
const path = require('path');
const cors = require('cors');
const favicon = require('serve-favicon');
const middlewares = [
cors(),
favicon(path.join(__dirname, 'public', 'favicon.ico')),
];
run('./src', middlewares);Lastly, just build static version of this website to ./dist folder:
const build = require('webrender/scripts/build');
build('./src', './dist');Test
git clone git@github.com:ndaidong/webrender.git
cd webrender
npm i
npm testLicense
The MIT License (MIT)