As of platform 2.2.2, Shoutem apps support patch-package changes being made to dependencies by extensions during the Shoutem app configuration process. Read on to find out how you can utilize this feature.
When working with third party packages, you’ll run into the issue of maintenance, bugs on their end and missing features. Sometimes the answer is to fork, sometimes it’s better to just patch it.
The following steps are how we created our own
patch-package changes, for example, in shoutem.audio. It uses the instructions provided by the
To make a patch, you will have to have the dependency you want to edit already installed as you would when running
shoutem configure. You can add your dependency via your extension’s
app/package.json and it will be installed when
shoutem configure is run.
shoutem configure, you will have to make the edits you need in
App-Name/node_modules/your-dependency, this will allow
patch-package to generate a diff and you’ll be set.
Following the changes made in step 2, create a
patch directory in your extension’s app segment.
App-Name/ directory, you run the following:
$ npx patch-package your-dependency@version --patch-dir extensions/your-dev-name.your-ext-name/app/patch
This will generate a patch-file and place it into your extension’s
app/patch directory that you just created.
Kick back, relax, Shoutem takes care of it from here. If you wanna know how, read the next section.
Shoutem’s platform has a
postinstall script which will apply all patches provided in every installed extension’s
app/patch directory right after the
shoutem configure script does it’s dependency installation step (since it’s the postinstall script being run).
In short, patches will be applied every time the app’s dependencies are installed, either manually, or with the
shoutem configure command.