Friends - I’m working on some Angular schematics and I’d like them to work in both Angular and Nx projects. Does anyone have a good example of this? I’m looking at some decent ways to get
workspace.json and for example figure out what the default app is. Any pointers are very welcome :)
I don’t believe you need to do anything special to make them work in both since nx uses ng under the hood.
Well, not in all cases. If you generate a project that has
ng cli won’t work
in regards to finding the default project, you can read the file in the use
JSON.parse(<fileData>) which gives you the file then just traverse it to the
I know, I am saying that when you use
nx to run schematics it will run angular schematics fine.
so if you build an angular schematics it will be usable by people using either
*there might gotchas with this, I do not have a huge amount of experience with it, but that is my understanding.
There are gotcha’s, that’s why I’m curious to see some prior art
nx does not work with
ng-add (as far as I know)
I’ve built a bunch of schematics and keep repeating myself with this stuff, so I wondered if there are some shortcuts I could use
For instance, I found
addDepsToPackageJson the other day, which is a super sweet shortcut for something I kept on doing manually. I figured there might be similar stuff for common things like figuring out the default app, or not having to wrap around
Just looked in the repo and in some migration scripts they are doing this, if there was a shortcut I would think they would be using it.
So one ends up with a check for
angular.json and one for
workspace.json, then we need to handle if any, none or both exists. Which is kinda clumsy to keep repeating
Thanks for checking btw, I appreciate the input :slightly_smiling_face:
I think it would be safe to do
else if workspace
ele throw error
No problem! I remember when i was figuring out how to write the nrwl/nest:lib schematic and it was a lot to learn all at once hahah
For me the benefit of nest is that I’m fine with running it on nx-only, so in that case I stopped caring about angular.json
It’s different for an Angular UI lib, it’s cool if it also works in plain Angular CLI apps
Guess I found at least one helper :slightly_smiling_face: https://github.com/nrwl/nx/blob/b55a1a96dd74fc1ecc209eb4f42959933102bd75/packages/workspace/src/utils/cli-config-utils.ts#L5-L8
there you go!
exactly what you were looking for
Yep! Thanks again!
I’m super happy that I found this slack btw! So much more useful than the Nx Gitter