TLDR: How reliable is an assumption that a compatible version of make
is installed on machines that my NPM package will be installed on?
I'm working for a client who is really fond of make and Makefiles. We need to integrate a JS package into another project. My go-to method would be npm install our-package
. The package requires a build step. We want to be able to install versions that are not yet released to npm.js from GitHub. The build process is more than one line of shell script so I don't want to repeat it in Makefile
and in package.json
(it will go out of sync real quick). Straight forward way is to set scrpits.prepare
to make
in packgae.json
. But I'm concerned about cross-platform compatibility (Windows, containers, etc).
Update: I've also discovered that it's extremely easy to create an endless loop where make
calls npm ci
or npm install
and then npm
calls make
. With npm install
there is --ignore-scripts
option, but ci
doesn't have an equivalent, see: https://npm.community/t/add-ignore-scripts-option-to-clean-install-ci-command/6322