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!

Initial Release of Firebase Nx Plugin

Devin Shoemaker

Devin Shoemaker

Maintainer of Nxtend

One of my favorite parts of software development is being able to solve the problems that I face. I have been a fan of Firebase for years, but it never felt like it fit in with the Nx tooling. This plugin adds a simple interface with the Nx CLI and firebase-tools which removes the need to cd into the application directory in order to run commands like init, deploy, and more. One thing to note is that the firebase-tools package must be globally.

Here is an example of running a Firebase command on an application once it has been configured:

nx run my-app:firebase --cmd deploy

Like I said previously, I built this plugin initially for my own needs, and so I'm not sure what features will come next. If you're a Firebase/Nx user then feel free to reach out to me and let me know what you would like to see out of a plugin like this.

To view the official documentation for this plugin, view the official docs

Nx 11 Support and Plugin Updates

Devin Shoemaker

Devin Shoemaker

Maintainer of Nxtend

The Nxtend plugins have been updated to support Nx 11, and with that are coming some changes. Nxtend plugin versions will now be more closely aligned with Nx, and the Ionic and Capacitor plugins will be more closely aligned with their respective projects. A lot of work have gone into the updates of each of these plugins. Features have been added, bugs have been fixed, and there were even some breaking changes. However, I think that Nxtend is the most sustainable and maintanable than ever.

Read more for details on updates and upgrades...

Release @nxtend/ionic-angular 1.0.0

Devin Shoemaker

Devin Shoemaker

Maintainer of nxtend

Earlier this year I released the Nxtend Ionic React plugin for Nx. From the beginning I intended to support all of the frameworks that Ionic officially supports, and today, Ionic Angular support has been added to Nx with the Nxtend Ionic Angular plugin.

Ionic combined with Capacitor enables developers to build high quality cross platform applications with web technology. Nx offers extensible tooling for monorepos, which can be a powerful combination with Ionic. Using Nx, large applications can be broken down into smaller libraries that are more maintainable and faster to test and build by using Nx's affected commands. Large organizations may have multiple applications that could benefit from sharing code, and Nx makes that easy as well.

To start developing cross platform application with Ionic Angular in an Nx workspace, visit the official Getting Started guide.

Release @nxtend/ionic-react 4.0.0

Devin Shoemaker

Devin Shoemaker

Maintainer of nxtend

Nxtend Ionic React v4 includes typical quality of life fixes with dependency updates, but has some breaking changes to the API. These changes will improve the maintainability of this project and will help prepare the plugin for future capabilities. For more details on these changes, read below.

Features#

  • update Ionic to 5.4.1
  • add ionic.config.json to application
  • update starter template

BREAKING CHANGES#

  • don't install and configure Cypress Testing Library
  • removed disableSanitizer flag from application schematic

Release @nxtend/capacitor 2.0.2

Devin Shoemaker

Devin Shoemaker

Maintainer of nxtend

Nxtend Capacitor v2 is here! This release has a number of big changes that warrated a major release. Capacitor project structures have been changed, Nx Console support has been improved, and dependencies have been updated. That being said, a manual migration is needed to support upcoming capabilities. Read the full blog post for more information on updating the plugin and migrating your projects. Please note, due to an npm issue, the current release is 2.0.2.

Fixes#

  • fix Windows support

Features#

  • update Capacitor to 2.4.2
  • add Capacitor configs to frontend application
  • add or update package.json in project folder when generating a Capacitor project
  • add builder configurations for Nx Console
  • add add-plugin schematic for adding Capacitor plugins

BREAKING CHANGES#

  • Capacitor plugins must now be added to both the root and project-level package.json

Release @nxtend/ionic-react 3.1.0

Devin Shoemaker

Devin Shoemaker

Maintainer of nxtend

This is a pretty typical maintenance release with a few package updates. The most notable change is @testing-library/cypress which introduces some breaking changes which you can read about below, or in the release notes.

Features#

  • update @nxtend/capacitor to 1.1.0
  • update Ionic to 5.3.2
  • update Ionicons to 5.1.2
  • update @testing-library/cypress to 7.0.0
  • update @testing-library/jest-dom to 5.11.4
  • update @testing-library/user-event to 12.1.5

BREAKING CHANGES#

  • @testing-library/cypress
    • get and query queries (which have been deprecated) have now been removed. Use find queries only.
    • TS: TypeScript type definitions have been brought into this module and no longer needs to be referenced from DefinitelyTyped

@nxtend/capacitor 1.1.0

Devin Shoemaker

Devin Shoemaker

Maintainer of nxtend

This release upgrades Capacitor dependencies to 2.4.0, and also makes it easier to add Capacitor plugins to a project. Previously, the user would have to add a Capacitor plugin dependency to both the root workspace package.json, but also the individual Capacitor projects package.json. Now, a package.json in the individual Capacitor project is no longer needed.

Features#

  • upgrade Capacitor to 2.4.0
  • copy package.json from workspace root for cap commands

@nxtend/ionic-react 3.0.4

Devin Shoemaker

Devin Shoemaker

Maintainer of nxtend

A bug was introduced with @nxtend/ionic-react 3.0.4 where @nrwl/react would not get installed to the users dependencies properly. This required new users to manually install @nrwl/react before using @nxtend/ionic-react.

Bug Fixes#

  • fix Collection @nrwl/react not found error if @nrwl/react is not added manually

@nxtend/ionic-react 3.0.3

Devin Shoemaker

Devin Shoemaker

Maintainer of nxtend

This version of the @nxtend/ionic-react plugin includes a few quality of life improvements regarding dependency management.

Bug Fixes#

  • add @nrwl/react version based on the users Nx version
  • don't unnecessarily add @nxtend/ionic-react dependency in init schematic
  • add @nxtend/capacitor 1.0.0 instead of *