The problem
If you're using PNPM as a package manager for your EmberJS project and you find yourself in a need to install a v2 addon from git(hub) fork (because you have a branch with patched version), then you might find that GitHub URLs in package.json tricks don't work for you.
The analysis
Reason for this is because v2 addons are a monorepo and we're still in the phase where pretty much every tool out there lacks good support/DX for monorepos.
There are different possible solutions for different cases:
- gitpkg.vercel.app - Using sub folders of a repo as yarn/npm dependencies made easy.
- pnpm patch - Prepare a package for patching
- patch-package - Lets app authors instantly make and keep fixes to npm dependencies.
But if you happen to use PNPM
in your project you might get away with providing a customised git URL.
The solution
Let's assume I have a patch branch of ember-highcharts that has latest commit of SHA: 7995a3e7d2203ce174c39e186acc9257d883bf61
. The web URL is:
https://github.com/MichalBryxi/ember-highcharts/tree/7995a3e7d2203ce174c39e186acc9257d883bf61
I can add this patched fork to my project as follows:
pnpm add -D 'github:MichalBryxi/ember-highcharts#7995a3e7d2203ce174c39e186acc9257d883bf61&path:ember-highcharts'
Where:
-
github:
Shorthand for pnpm to know where the code is hosted -
MichalBryxi
- My github namespace -
ember-highcharts
- Name of the repo (my fork) -
7995a3e7d2203ce174c39e186acc9257d883bf61
- respective commit that contains the patch I'm interested in -
path:ember-highcharts
- In this v2 addon the ember-highcharts subdirectory contains the code for the addon
Conclusion
With PNPM
it is possible to install EmberJS v2 addons, or any other packages living in monorepos, from GitHub forks.