A Gulp-inspired incremental build system
Here is a table comparing some javascript build systems:
Feature | Yalam | Gulp | Brunch |
---|---|---|---|
opinionated | ✓ | ||
incremental | ✓ | ✓ | |
pipeline-based | ✓ | ✓ | ✓ |
Yalam is a Gulp-inspired incremental build system. The aim is to make your build purely incremental, by using a caching strategy and a developper-friendly API.
Yalam is configured with a Yalamfile.js
.
This file describes the list of pipelines that can be used to build your packages.
const {
pipe,
apply
} = require('@yalam/core');
const {
source,
destination,
createAsset
} = require('@yalam/operators');
const {
tsCompiler
} = require('@yalam/typescript');
const ts = pipe(
source({ glob: 'src/**/*' }),
createAsset(),
apply(['.ts'])(
tsCompiler.transpileModule(),
tsCompiler.generateTypes()
),
destination({ path: 'dist' })
);
module.exports = {
default: ts,
};
Using the CLI provided by @yalam/cli, you can build your packages by providing a list like that:
foo@bar:~$ yalam --watch example-1/ example-2/
Here a package is a folder containing a package.json
file with a config.yalam
field like for instance:
{
"name": "@yalam/example-1",
"version": "1.0.0",
"main": "dist/index.js",
"config": {
"yalam": {
"build": "default",
"watch": "default"
}
}
}
👤 Paul Le Couteur