You declare some directories to use as
blueprints
and thennew modules
are automatically generated based on those blueprints.
Install globally to use the CLI.
npm install -g anygen
Install locally to use programtically.
npm install --save anygen
Anygen requires you to set the path of your blueprints
and the path where you want to generate you new modules.
In your package.json
add the object anygen
and set both paths. You can override this values using the cli options -b
for blueprints_root and -m
for modules_root.
//file: package.json
{
"anygen": {
"blueprints_root": "./path/to/your/blueprints/",
"modules_root": "./src/modules"
}
}
anygen generate blueprint_name new_module_name
list all Blueprints:
anygen list
var anygen = require('anygen');
var builder = anygen.Builder;
var modules_root = ".src/modules/";
var blueprints_root = "./path/to/your/blueprints/";
var blueprint_name = "ng-component";//this must be a direct subfolder of blueprints_root path (an existing blueprint).
var new_module_name = "MyNewModule";
var builder = new Builder();
builder.addBlueprints(blueprints_root);
var files = builder.build(blueprint_name, new_module_name, modules_root);
console.log("Generated files:");
files.forEach(function (item) {
console.log(" " + item);
});
For detailed info please check the API documentation generated using typedoc
Builder.addBlueprints(blueprints_root)
-
blueprints_root
: root path to the Blueprint generators, each subdirectory of theroot_path
is a Blueprint
Builder.build(blueprint_name, new_module_name, modules_root)
-
blueprint_name
: Name od the Blueprint to be used (a direct subdirectory ofblueprints_oot
) -
new_module_name
: the name of the new module that is generated -
modules_root
: path where the new module will be generated, new module path =modules_root
+new_module_name
A blueprint is any direct ">"
subdirectory of your blueprints_root
directory.
path/to/your/blueprints_root
+── blueprint1
| └── __name__
| +── __name__Controller.js
| +── __name__Controller.js
| └── __name__Template.html
└── blueprint2
└── __name__
+── __name__Controller.js
+── __name__Controller.js
└── __name__Template.html
The __name__
string:
Any __name__
string in a directory or file name will be replaced by the new_module_name
when the build process is executed.
Any __name__
string withing the content of the Blueprint files also will be replaced by the new_module_name
.
Examples of the Blueprints can be found withing the repo: tools/blueprints/.
-
single-dir
blueprint: shows how to create a blueprint with all the files in a single directory with the name of the module -
multiple-dir
blueprint: show how to create a module where the files are split within multiple directories. in this case themodules_root
parameter should be thecommon root
af all the split directories and blueprint should replicate the subdirectory structure of thiscommon root
.
MIT @ Ma Jerez