An opinionated build system for front-end web development.
Currently supports:
- Sass
- Supports
glob
imports (i.e.@import "glob:../../templates/**/*.scss";
)
- Supports
- Less
- ES6 JS / JSX
- JSON Manifest (NOT webmanifest)
- Critical CSS
- File copy sync
With Yarn:
$ yarn add -g tam/build
Or NPM:
$ npm i -g tam/build
To compile your assets in development mode with file watching run:
$ build
To create production builds and generate critical CSS run:
$ build p
To generate a dedicated config file run:
$ build init
There are two ways to configure build (should you need to). The first is in your
package.json
file, and the second is via a dedicated build.config.js
file.
You can configure build in your package.json
by adding a build
property
that maps to an object of your settings.
For more advanced configuration that can use Node JS you'll want to use the
build.config.js
file. Run the build init
command to generate this file.
You can navigate up and down the message log using the following keys:
Shift + ]
- Jump up 5 linesShift + [
- Jump down 5 lines[Up arrow]
ork
- Jump up 1 line[Down arrow]
orj
- Jump down 1 line
- Write install / usage / config docs
- Remove BrowserSync (or replace it with something simpler)?
- Allow config options to be set in
package.json
- Merge config from
package.json
intobuild.config.js
when creating it - Add CLI flags for temporary overrides (i.e. prod build without critical
--no-crit
) - Support
critical.cssUrl
being both absolute and relative tocritical.baseUrl
- Watch package.json or build.config.js for changes and update everything accordingly
- Support scrolling through log
-
build init
should have to option to createbuild.config.js
or addbuild
topackage.json
with defaults