Built-in modules take the responsibility of maintaining dependencies and compatibility issues.
As we know, there is grunt and gulp for running some tasks to make your web project production-ready.
They also brought extra learning curve and maintenance cost for learning own configuration and packages with them.
This is where sey comes into play and offers alternative build system:
|Configuration Type||API and JSON||JSON||API|
|Platform targeting||node and web||Agnostic||Agnostic|
|No disk IO during tasks||✓|
|No maintainance cost||✓|
in other words, sey...
npm install -g sey
To create the seyfile in current directory:
To create the seyfile (with API-type configuration) in current directory:
sey init --api
To edit seyfile created:
vim seyfile.js (or open seyfile.js with your favorite text editor)
To build single bundle named 'main':
sey build main
To clean working directory:
let config =global:clean:before: './dist/*'after:main:target: 'node'standard: 2016eslint:quotes: 2 'single'eser: truebanner:'/**'' * my package'' */'''ops:src: './src/**/*.js' './src/**/*.ts' './src/**/*.jsx'dest: './dist/scripts/'addheader: truecompile: truecommonjs: name: 'browserified.js' entry: './index.js'eolfix: truelint: trueoptimize: truepreprocess: truetranspile: truesrc: './src/**/*.css' './src/**/*.less' './src/**/*.scss'dest: './dist/styles/'addheader: truecompile: trueconcat: 'style.css'eolfix: truelint: trueminify: trueoptimize: truepreprocess: truesrc: './test/*.js'test: true;sey;
let config = ;config;config;config;config;config;sey;
sey is usually being started from command line. It simply loads its configuration named
seyfile.js and built-in modules first.
Loaded modules may delegate any "phase". Or, they can subscribe any internal event.
Depending on command line parameters, a "preset" will be executed.
- \ (presets)+ lint- build (phases)+ init+ preprocess+ lint- compile (operations)- compile (tasks)+ babeljsx+ less+ sass+ typescript+ transpile+ bundling+ finalize+ publish+ test+ server+ deploy
Preset: A set of phases in execution order. For example
build executes init, preprocess, lint, compile, bundling and finalize "phase"s in a sequence.
Phase: Each step of delivery. Consists of "operation"s.
Operation: The delegation point of tasks. However configuration directives tell us which operation is asked, operation must correspond to a task to be executed.
To do so, the dominant (with higher weight point) task is elected depending on modules' claims.
Task: The class definition of the task.
See GitHub Issues.
Apache 2.0, for further details, please see LICENSE file
It is publicly open for any contribution. Bugfixes, new features and extra modules are welcome.