feasible
v3.0.0
Published
Guided and unified development environment
Downloads
779
Readme
Feasible
Guided and unified development environments setup wizard.
Life Cycle
- Download config file from remote if
--url
option is used - Prompt questions
- Resolve default variables
- Initial hooks executed (if this is first setup/no lock file)
- Pre hooks executed
- Clone remote repository (if
repository
defined in config file) - Clean up earlier produced files
- Render and save files
- Post hooks executed
Getting Started
1. Automate
Let's start by installing Feasible as a dev dependency of your project
npm install feasible --save-dev
or yarn add feasible --dev
and add a script to your package.json, e.g.: "env": "feasible"
just to trigger feasible.
Or you can skip installation section and use npx feasible
directly on your hooks
After that we need to create a configuration file in format you prefer feasible.{yml,json,json5}
Last step we have to create a git hook to automate updating environment on pull or checkouts (your choice, example is using husky, but you can use any other hook system)
npx husky add .husky/post-merge "npm run env"
or
npx husky add .husky/post-checkout "npm run env"
or both.
2. Manually managing
Install as a global and use on any project that have feasible.{yml,json,json5} configuration file
npm install -g feasible
or npx feasible
Commands & Arguments
- Using different config file other than feasible.{yml,json,json5}
feasible -c custom.json
Usage: feasible <command> [options]
Start setup process
Options:
-V, --version output the version number
-c, --config <FilePath> Configuration file (default: "feasible.{json,json5,yml}")
-u, --url <FileUrl> Configuration file url. Example: https://my-private-repo.git.com/raw/dope-repository/main/feasible.{json,json5,yml}?token=TOKEN
-f, --force Overwrite current setup if it exists and start over (default: false)
-p, --parallel Enable parallel actions if possible (default: false)
-s, --separator <Separator> Default separator for variable and values (default: "=")
-n, --no-clean Don't clean up old output files
-h, --help display help for command
- Fetch remote config and execute
npx feasible -c https://remote-url.io/feasible.yml
- Version
feasible --version
- Help
feasible --help