Static Site Generator | Website Bundler | Asset Compiler | Templating | Preprocessor
Muleify is the one stop shop for your web front end needs, it is a command line tool that handles all your website development needs. Muleify has a unique no configuration required interface. It automatically handles many tasks such as compiling Sass, Scss, Less, Css, ES6 to ES5, bundling, and minifying. Muleify uses extensions and sub-extensions to automatically handle these tasks. With almost almost zero configuration or changes to existing projects you can get started. If there is a feature you want let me know or make a PR.
Another static site and asset generator you might say.
- zero configuration
- quick and easy
- no learning curve
- based on extensions and sub-extensions
- single page applications support (spa's)
- imports, includes, partials, templates, and layouts
- preprocessor types JavaScript, CSS, SCSS, SASS, LESS, HTML, MD
npm i -g muleify
- 3.x.x uses async/awiat so node version >=7.6.0
- 2.7.0 removes default sass/scss support. After install if you want to use sass run
muleify install-node-sass.
-
muleify -p [options] <input> <output>Packs a folder or fileinputpath to folder or fileoutputpath to folder or file-b, --bundleBundles the output-m, --minifyMinifies the output-t, --transpileTranspile the output-w, --watchWatches a file or folder-p, --path <path>Defines the path to watch-s, --serveServes a folder or file
-
muleify -s [options] <input> [output]Serves a folder or fileinputpath to folderoutputpath to folder (optional)-s, --spaEnables single page application mode-c, --corsEnables cross origin resource sharing mode
-
muleify -m [options] <input> <output>Creates XML sitemapinputpath to a folder to generate the sitemapoutputpath to a folder to output sitemap.xml-d, --domain <domain>Inserts domain into sitemap
-
muleify -e [options] <input> <output>Creates folders and files from a json fileinputpath to a JSON fileoutputpath to a folder
-
muleify -iInstalls sass/scss compiler (might require sudo)
Muleify uses extensions and sub-extensions to process specail file types. Sub-extensions are period separated names. They can be combined in any order or combination. The generated file will not contain the sub-extensions. For example a file in the src folder could be named file.b.e.js and the dist folder it would be named file.js.
i- ignore
l- layout wraps all view filesv- view inserted into layoutp- partial allows file to be importedm- minify minify code (under development)
b- bundle modules ESM to UMDt- transpile- async/await to promises
- transpile to browser list defaults
m- minify minify code@preservewill persist comments.@bannerwill place comment at document start.
b- bundle all importst- transpile- transpile to browser list defaults
m- minify minify code
m- minify minify code
m- minify minify code
The path includes/imports/partials/layouts are relative from the input folder.
Note partial relative path from file
- layout a placeholder:
<!-- { "layout": "*" } --> - import a partial:
<!-- { "partial": "./header.p.html" } --> - define a variable:
<!-- { "title": "I Am Title" } --> - import a variable:
<!-- { "variable": "title" } -->
Converts to HTML.
Supports ESM import relative path from file and also the node resolution algorithm. For node resolution it will search the node_modules package.js files for "module": "file" or main: "file".
Note @import relative path from file
Sass automatically bundles imports.
Note @import relative path from file
Less automatically bundles imports.
Note @import relative path from file
Why You Should Choose MPL-2.0 This project is licensed under the MPL-2.0 License