greni v0.5.5
greni 
A batteries-included way to quickly build modern, fast, single-page applications
Introduction
Greni is the Icelandic word for the den of a fox. It is also a build tool that intelligently concatenates a pipeline of the following tools:
greni is cunning, and avoids rebuilding your svelte component files unless
they have changed or the build configuration (i.e. debug vs production) has
changed.
Usage
Create a greni.json file, and populate it with contents such as the following:
{
"components": ["src/components/Card.html", "src/components/App.html"],
"entryPoints": {"index.js": "src/index.js"},
}You can also put this in your package.json under the greniConfig key:
{
"greniConfig": {
"output": "output/",
"components": ["src/components/Card.html", "src/components/App.html"],
"entryPoints": {"index.js": "src/index.js"}
}
}Run greni or greni --debug to build the following artifacts:
output/index.jsoutput/index.js.map
To automatically rebuild when your source files change, use the entr utility:
while true; do find src/ -type f | entr -d greni || break; doneConfiguration Reference
You can configure greni via either a greni.json file, or package.json
using the greniConfig key.
The possible keys in this object are shown below:
| Key | Value |
|---|---|
| components | An array of svelte component paths. Defaults to []. |
| entryPoints | An object mapping outputName -> entrySourceFile. |
| output | A path. Defaults to output/. |
| buble | An object defining buble options. Defaults to null, meaning buble is not run. |
| eslint | A boolean. Defaults to true. |
Future Plans
greni may someday become the central tool for building
Vixeno apps, and house a repository of common
components.