@ankylos/cli v2.0.0
@ankylos
An opinionated set of configuration files & CLI for conveniently bootstrapping Node projects. (NPM Organization)
How does it work?
- Choose a preset to clone from. Currently, the
next
andnode
presets are implemented for Next.js and vanilla Node.js (both using TypeScript) respectively.
~$ ankylos create new-project --preset node
Run
ankylos bootstrap
within the newly cloned directory. This will read from the preset'sankylos.config.js
, which describes behaviour for preset-specific dependencies, dev-dependencies, templates, and NPM scripts. For example, thenode
preset has theeditorconfig
,eslint
,github
,husky
,markdownlint
,package
,pnpm
,prettier
,renovate
, andvscode
extensions enabled by default. Each of these plugins is an NPM module published under the@ankylos
organization and contain their ownankylos.config.js
. However, this configuration defines template-specific behaviour, such as files to preserve/copy and template-specific dependencies. Anyways, thebootstrap
subcommand will initialize a 4-stage bootstrap process:I. Install all direct dependencies, dev dependencies, and templates under the preset's
ankylos.config.js
.II. Install template dependencies and dev dependencies
III. Prompt for project metadata: name, description, kewords, license
IV. Copy files specified by templates into their respective locations relative to the new project
Simply
pnpm install
in the current directory and you should be good to go!
What ankylos
is NOT supposed to be
- A generic wrapper to encapsulate configuration entirely. The entire point is
just to bootstrap common configuration and that's all. Things like
prettier
will remainpeerDependencies
inankylos-template-prettier
, for example. - A one-size-fits-all tool for all developers. This tool has been developed with my personal preferences in mind. If you would like to add a template, feel free to create a pull request, but be warned that I may not accept it on grounds of personal preference. At that point, feel free to fork the repository (keep the LICENSE :)!) and adjust the template to your neds
Caveats
- Currently only supports
pnpm
. Support for other package managers is not a priority.
Try it out
With all of that said, feel free to try ankylos
for yourself!
~$ pnpm install --global @ankylos/cli
~$ ankylos --help