Nxtend 12.0.0

Devin Shoemaker

Devin Shoemaker

Maintainer of Nxtend

Nxtend version 12 is finally here! This has been a long time coming, and I'm really excited to get this update released.

Some of the highlights include Nx 12 support, Capacitor 3 support, and the plugins have been rewritten from the ground up to use Nrwl's Nx plugin devkit.

Starting with Nxtend 11, I started versioning these plugins according to the Nx version that I was targeting. So you may notice that this release is version 12 even though Nx 13 is already released. These updates were nearly finished by the time that Nx 13 came out, and since I only intend to support the current major version of Nx I figured it would be good to release a version of these plugins for those still on Nx 12. The next update planned will be version 13 and will no longer officially support Nx 12, and there will be no updates planned for version 12 unless there are critical bugs. I plan to start work on supporting Nx 13 immediately, so expect updates on that in the near future.

One thing that I would like to get community feedback on is regarding Angular CLI support. Modern Nx plugin development does not support the Angular CLI out of the box, however, Angular CLI support is possible with additional effort. Testing this suite of plugins already requires significant effort. Automated end-to-end tests take 30+ minutes alone, and there is often manual testing that is still required for releasing. Adding support for the Angular CLI would only increase both of these efforts. If there is enough desire for Angular CLI support from the community then I will consider adding this to the suite of plugins.

Capacitor#

## Features
- support Nx 12
- plugin rewritten with `@nrwl/devkit` for better maintainability and future proofing for future Nx versions
- update Capacitor to 3.2.5
- add Capacitor `run` target (requires Capacitor 3)
## BREAKING CHANGES
- Angular CLI is no longer officially supported
- `add-plugin` schematic has been removed
- the `init` generator has been removed and the functionaltiy has been moved to the `application` schematic

Ionic React#

## Features
- support Nx 12
- plugin rewritten with `@nrwl/devkit` for better maintainability and future proofing for future Nx versions
- update Ionic to 5.8.3
- update list starter template
## BREAKING CHANGES
- Angular CLI is no longer officially supported
- the `init` generator has been removed and the functionaltiy has been moved to the `application` schematic

Ionic Angular#

## Features
- support Nx 12
- plugin rewritten with `@nrwl/devkit` for better maintainability and future proofing for future Nx versions
- update Ionic to 5.8.3
- update list starter template
## Bug Fixes
- fix styles asset path in workspace when generating an app on Windows

Firebase#

## Features
- support Nx 12
## BREAKING CHANGES
- Angular CLI is no longer officially supported

Updating#

Migrating to the latest version of these plugins is just as easy as migrating to the latest version of Nx.

nx migrate @nxtend/capacitor
nx migrate @nxtend/ionic-react
etc...

Note: If you are using npm 7+ and get an error during the npm install after migrating then you may need to run npm install --legacy-peer-deps and then continue the migration.

Burnout#

At this point, I have been working on these plugins for over a year and a half. It's been an amazing experience for me and has given me a lot of opportunities from speaking at Nx Conf, to even playing a part in getting my role at Ionic. I joined Ionic late last year and it has been an incredible transition for me. For those who don't know me personally, I had been working incredibly hard over the last couple years to advance my career, and this project was a large part of that.

Between years of spending much of my free time on coding, going through COVID with the rest of the world, and finally getting a job that I was satisfied with, I finally experienced that familiar feeling. Burnout. I knew that I needed a break. I took more time for myself, and spent more time with my family and loved ones. I do not regret this at all, and I think everyone should recognize when they need to take a break for the sake of their mental health. I believe that we as people go through seasons, and this just happened to be when the seasons changed for me.

That all being said, during my break there were a lot of upgrades on the projects that my plugins depend on. From Angular 12+, to Nx 12, and even Capacitor 3, there were a lot of things that needed updated and refactored. It's taken me a while to get the project where I want it, but it should be more maintaible than ever after these changes. I feel like I am in a much better place at this point, and I hope to maintain this project in a sustainable manner.

Open source is hard. Seeing the npm downloads climb is both a blessing and a curse during a burnout phase, but this community has made it all bearable. I have received so many kind words over the last year and a half, and it really pushes me to keep going, so I want to thank you all. A number of people also reached out over time to help, and I really appreciate that.

I am really excited for the next phase of Nxtend and can't wait to publish more updates. Cheers!