Explore Rollup.js
- ✓ Uses native JavaScript ES Modules (ES2015) over UMD, CommonJS and AMD based module systems like RequireJS
- ✓ Minifies of JavaScript
- ✓ Minifies of CSS
- ✓ Bundles JavaScript
- ✓ Bundles CSS
- ✓ Creates JavaScript Source Maps
- ✓ Creates CSS Source Maps
- ✓ Applies Tree-Shaking methodology to JavaScript
- ✓ Can employ Babel to transform all ES2015-ES2020 code to be ES5 compatible
- HTML templating (partials into whole pages) fueled by Markdown files (i.e.: static site generation)
- Can be deployed and built (primarily or entirely) by GitHub or GitLab
- ✓ Has a built-in web server or can be adapted to use a dev dependency
- ✓ Can compile dev and production builds (or be asked to target something specific)
- ✓ Can be run by CLI with an option to be scripted using Node.js for something complex
- Has most of what is desired out-of-the-box 📦 and thus reduces the dependencies needed to compile the project
- Can incorporate old style or top-level JavaScript libraries that cannot be rewritten to use ES modules (e.g.: jQuery)
- ✓ Has native file caching (no extra dependencies) to speed up build process
- Can be extended per project requirements
- Can compile JSX, TypeScript, React, and Vue natively or with plug-in maintained by code runner
- ✓ Can run processes in parallel
- Has logging with level support
- ✓ Config file accessible
- Can minify SVG and Bimap images
- Can run preferred linters
- Scope hoisting
- Can be configured to ignore files as well as can be fed glob patterns
- Can be configured to not perform tasking on a library
- Can be setup to honor preferred directory structure or be altered easily on a per project basis
- Can inject the contents of JavaScript and/or SVG files into HTML files. This will allow for the original file to be altered and the destination file to receive the update without copying and pasting upon when an edit is made (and developer won't have to remember to do so).
- Can minify HTML files (often overlooked but not to be forgotten as an easy way to reduce markup language file size). Thinking progressively, imagine a world where entire pages can be delivered to the client from a key/value store such as Redis (worked a solution a long time ago using this route which used a Redis cluster that was accessed via the backend using a reverse proxy)
- GNU/Linux, Unix, or macOS
- Rollup.js
- Node.js
npm install
npm run build
npm run build-dev
npm run watch-and-serve-dev
Continuous integration and continuous delivery (CI/CD) pipeline has been established using GitLab.
The URLs are ready.
TBD
TBD