Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


    greni npm version

    A batteries-included way to quickly build modern, fast, single-page applications


    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.


    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.js
    • output/

    To automatically rebuild when your source files change, use the entr utility:

    while true; do find src/ -type f | entr -d greni || break; done

    Configuration 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.



    npm i greni

    Downloadslast 7 days







    last publish


    • avatar