DEV Community

Cover image for How to easily create JS libraries with bundled dependencies compatible with ES/AMD/UMD/CJS module systems using Nx

How to easily create JS libraries with bundled dependencies compatible with ES/AMD/UMD/CJS module systems using Nx

Iulian Preda on January 22, 2022

General aspects If you haven't yet checked out my last post it's high time to do so as we will need it for this article. Getting that ...
Collapse
 
hugoazevedosoares profile image
hugoazevedosoares

Thank you for this post, it saved me a lot of time!

Collapse
 
ipreda profile image
Iulian Preda

You are welcome! I am glad i could help someone.
Whenever I have time I'll continue this series demonstrating how to

  • automatically publish to multiple package managers
  • automatically increase the version number
  • automatically link dependant internal projects in your package.json.
Collapse
 
hugoazevedosoares profile image
hugoazevedosoares

That would be awesome. Also, a nice thing we have done here at my team is also bundling a css for a library, so we can also publish it to a cdn on the same build pipeline.

By the way, we went back to use rollup, I though the configuration overall it's simpler.

Thread Thread
 
andyclausen profile image
Andreas Clausen

How did you get d.ts files into your build folder with rollup? I had to make another command that calls tsc "manually" (i.e. not with @nrwl/js:tsc) after the rollup. Did you find a better way?

Thread Thread
 
ipreda profile image
Iulian Preda

D.ts files should be created automatically. Please check your ts-vonfig files to have them emitted. That should be done using the "declaration":true flag

Thread Thread
 
andyclausen profile image
Andreas Clausen

I have declarations on, and they are being generated when I call tsc with the same tsconfig. We are talking about the @nrwl/web:rollup executor, right?
Maybe this is only an issue when using swc, but I'm pretty sure it didn't work for me with babel either.