yml-include v1.0.5
YML-INCLUDE
The yml-include library is a simple and efficient solution for developers working with YAML files. It allows easy management of YAML file inclusions, which simplifies configuration management and reuse of code fragments.
Getting started
You can easily install yml-include using this command
npm install yml-include -DUse
Once installed yml-include is used with this single command
npx yml-include <entry_file.yml> <dist_file.yml>This will start a build of your YAML files
You can add the --watch parameter to make yml-include rebuild when saving an included file
npx yml-include <entry_file.yml> <dist_file.yml> --watchOr you can defined a script in your package.json to run npm run <your_script_name>
"scripts":{
"build-yml": "yml-include <entry_file.yml> <dist_file.yml>"
"watch-yml": "yml-include <entry_file.yml> <dist_file.yml> --watch"
}Syntaxes
There are two syntaxes specific to the yml-include library
#@include <relative_path> & #@slot:<slot_name> <value>
@include
Syntax
@include <relative_path>
The use of @include allows to include the content of another YAML file, this one needs a relative path to the desired .yml file, there is no need to specify the .yml extension
Example
./entry-docker-compose.yml
services:
database:
image: mysql
#@include ./services/nginx./services/nginx.yml
web:
image: nginxout-docker-compose.yml
services:
database:
image: mysql
web:
image: nginx@slot
Syntax
@slot:slot_name <value>
Combined with an @include the @slot allows to interpolate a value in the included file, let's use the same example as before
example
./entry-docker-compose.yml
services:
database:
image: mysql
#@include ./services/nginx
#@slot:image_version nginx:latest./services/nginx.yml
web:
image: #@slot:image_versionout-docker-compose.yml
services:
database:
image: mysql
web:
image: nginx:latestThis allows you to create some kind of reusable YAML component.
Features
Error Management
In case of error on imported files, the script shows you the line and the file concerned by the erroneous include
File Caching
The purpose of this script is to simplify the writing of large YAML files by allowing multiple use of the same include from the same or another file. The script caches all open files to preserve access to your hard disk.
In the futur
- Prevent from circular include cause infinit loop
- Add warning about syntax close to basic yml-include syntax (#@)