Consider the following scenario:
- There is a code library. The library is written in TypeScript and the typescript code is published in GitHub. The
package.jsonfile has a build script which creates JavaScript files based on the TypeScript code and a publish script which then places the resulting JS files on npm. - I make a fork of the GitHub repo, make some modifications to the typescript files and push those changes to GitHub. (I also open a PR to the original GitHub repo but there is a time lage before these changes can be merged.)
- I wish to consume these code changes in a downstream NPM package so in the downstream packages I change the reference (in the downstream's
package.jsonfile) to the modified package to the GitHub URL of my fork and do annpm install.
This doesn't work because:
- The package.json file of the modified package does not list the typescript files in the
distfield, only the automatically generated JS files so the TypeScript files are not pulled during the npm install. - The compiled JS files aren't present since they aren't checked in to GitHub.
How can I solve this? Is there a way that I can modify the behavoir of npm install so that it fetches files in the repo that aren't in dist and then runs the build script during the install?
buildbranch (a branch with same name as a folder would sometimes confuses Git, so avoiddist).