ignite
ignite copied to clipboard
Consider replacing the generator template engine with plop
One of the nice features of Ignite is being able to use EJS to create components via the CLI.
However, the current implementation has a few drawbacks:
- CLI commands cannot accept new props without a release
- The CLI is coupled to existing folders
See plop library for more info https://github.com/plopjs/plop
Pros of moving to plop:
- generator commands live in project and can change with time instead of being tied to boilerplate structure
- The project seems more mature, more features, more docs
- plop seems to have feature parity with ignite generators
- easier to maintain since it is an external library
Cons of moving to plop:
- we do not maintain it, so if we need different things, we can't control the source code
- upfront cost of extra work to implement existing functionality
Originally suggested here https://github.com/infinitered/ignite/pull/2317#issuecomment-1427171617
Some issues that are prompting this:
- https://github.com/infinitered/ignite/issues/2253
- https://github.com/infinitered/ignite/issues/2367
Historically, it appears the generator functionality has been the source of 100+ issues, not an insignificant source of maintenance cost: https://github.com/infinitered/ignite/issues?q=is%3Aissue+generate+generator
Team met on this topic and will first do a cookbook version for test runs before thinking about incorporating it into Ignite