I am trying to execute a child process in a different directory then the one of its parent.
var exec = require('child_process').exec; exec( 'pwd', { cdw: someDirectoryVariable }, function(error, stdout, stderr) { // ... } );
I'm doing the above (though of course running "pwd" is not what I want to do in the end). This will end up writing the pwd of the parent process to stdout, regardless of what value I provided to the cdw option.
What am I missing?
(I did make sure the path passed as cwd option actually exists)
There are two ways you can get the current directory in NodeJS: Using the special variable __dirname. Using the built-in method process. cwd()
There is no built-in method for Node to change the CWD of the underlying shell running the Node process. You can change the current working directory of the Node process through the command process. chdir() . When the Node process exists, you will find yourself back in the CWD you started the process in.
spawn() or child_process. spawnSync() . child_process. exec() : spawns a shell and runs a command within that shell, passing the stdout and stderr to a callback function when complete.
The option is short for current working directory, and is spelled cwd
, not cdw
.
var exec = require('child_process').exec; exec('pwd', { cwd: '/home/user/directory' }, function(error, stdout, stderr) { // work with result });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With