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.json
like above. The API ofchild_process
isn'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.