- simple web server
- easy to extend with API
- auto watch / build, recursive tree parsing
- as a module, but extensible.
install required modules
npm install --save @zbryikt/template
start server ( -r, -p and -c are optional ):
npx server -r <your-web-root> -c <your-server-config> -o <auto-open:true/false> -p <port>
you can also add following in your own package.json:
"scripts": {
"start": "npx server"
},
optional server config json file specified via -c
option for altering default port and other config:
{ "port": 3012 }
Port will be randomized unused port if not specified. For more about options, see the Options section below.
sample
folder serves as a starting point to bootstrap a project. It contains following files:
package.json
: a simple package.json with necessary dependencies. You need to update repo info in this.LICENSE
: default MIT.config.json
: config file used by template.deploy
: if you use gh-pages of github, this automatically push your static/ directory to gh-pages branch. you need to have a gh-pages branch at first.README.md
: a dummy readme. edit it as necessary.src/
: template style source code folder. check@plotdb/srcbuild
for more information.src/ls/
: LiveScript code, built to static/js/src/pug/
: Pug code, built to static/src/styl/
: Stylus code, built to static/css/
static/
: generated files or other assets.locales/
: i18n translation files based oni18next
.
run template
with customized web api by manually initing server:
require("template")
template.server.init({
api: function(server) {
server.app.get("/custom-api", function(req, res) {
return res.send("custom api response");
});
}
});
in this case you will have to watch source files manually:
template.watch.init({ ... });
server.init accepts config with following options:
port
- port to listen. when omitted, random unused port is used.startTime
- optional time for providing initialization elapsed time information.api
- functions for customizing server. executed before server startedopen
- true to open browser page when server starts. default falseferoot
- frontend root for serving static file and building view files. default.
.i18n
- i18n options including:enabled
- true if i18n is enabled. defaulttrue
.lng
- list of locales. default['zh-tw']
. mapped to folders underlocales/
directory.fallbackLng
- fallback locales. defaultzh-tw
.preload
- list of locales to preload. defalt['zh-tw']
.ns
- list of namespaces. default['default']
. mapped to files under specific locale directory.defaultNS
- default namespace. defaultdefault
fallbackNS
- fallback namespace when failed to match with desired namespace. defaultdefault
.
for using @zbryikt/template
as a command line tool, config file specified by -c
option also support following options:
lsp
: an object passed tosrcbuild.lsp
as options. check@plotdb/srcbuild
for more information.
watch.init accepts config with following options:
watcher
ignores
: files to ignored ( not watched ). array of regular expression against file names.
assets
: (deprecated) array of node module names to be copied tostatic/assets
folder.- replaced by
fedep
. will be removed in future release
- replaced by
template
now use @plotdb/srcbuild
for source building, and thus there are some additional features available and documented in @plotdb/ssrcbuild
. Please refer to @plotdb/srcbuild for more information.
- support both indir building or src / static building.
- api style invocation
- To optimize Pug building, keep an eye on the Pug inclusion tree, and prevent unnecessary include if possible.
MIT