@deg-skeletor/core
v1.1.1
Published
The core engine for the Skeletor family of build tools
Downloads
50
Keywords
Readme
Skeletor!
Skeletor is a simple task runner for automating common development chores. It has a growing ecosystem of plugins to handle a wide variety of tasks.
Skeletor is built and looked after by the front-end web development team at DEG.
Installation
Skeletor can be installed via npm:
npm install @deg-skeletor/core
Nice job! Next, you'll want to install some plugins.
Plugin Ecosystem
At its core, Skeletor is just a delegator. Plugins do the real work.
A typical Skeeltor plugin does one thing and one thing well. That one thing could be anything. There are plugins for file copying, PostCSS, Pattern Lab, Express, Rollup, and more. Go on, have a look.
Configuration
Skeletor needs a configuration object to tell it what tasks to run and what those tasks are comprised of. A sample configuration object might look like the following:
{
tasks: [
{
/* a task to build all the code in a project */
name: 'build',
subTasks: [
{
/* a sub-task to build the CSS code */
name: 'css',
plugins: [
{
/* a plugin to process CSS via PostCSS */
name: '@deg-skeletor/plugin-postcss',
config: {
//Plugin-specific config
}
}
]
},
{
/* a sub-task to build static files */
name: 'static',
plugins: [
{
/* a plugin to copy static files from one directory to another */
name: '@deg-skeletor/plugin-copy',
config: {
//Plugin-specific config
}
}
]
}
]
}
]
}
A Skeletor configuration object consists of an array of tasks
. A task
consists of either plugins
or subTasks
. A subTask
is itself a task
with its own plugins
or subTasks
properties.
By default, Skeletor will look for a configuration file named skeletor.config.js
relative to the working directory. Alternatively, a configuration object can be passed directly to Skeletor. See the API section for more details.
CLI
Included within the Skeletor ecosystem is a command line interface for interacting with Skeletor via a terminal. Visit the Skeletor CLI project for more information.
API
Skeletor exposes a compact API for programmatic interaction.
getConfig()
Returns the configuration object.
setConfig()
Sets the configuration object.
setLogger()
Sets the logger for outputting information, warnings, and errors. A simple console logger is used by default.
runTask(taskName, [options])
Runs the specified task.