Q: Is it possible to change the the context in which npm runs scripts?
What I want to is the following:
As noted above:
npm is probably using
var spawn = require('child_process').spawn
which would allow you to set options like:
{cwd: pwd + 'somepath'}
but isn't exposing it.
I've solved it with a fairly large
install.js, which does roughly that and it gets called frompackage.jsonlike above. The API ofchild_processisn't that easy to handle, though, since it throws loads of hard to debug errors. Took me some time, but I am happy now.
npm allows only to do cd dir && command -args, which will also run on Windows.
A change to use node's spawn functionality has been made in PR https://github.com/npm/npm/pull/10958, but was rejected, due to the above solution.