Как установить рабочий каталог для Node.js на окнах?

Я только что установил node.js для окон, и на самом деле это был легкий ветерок, чтобы запустить его. Я хотел бы использовать его как часть моего процесса сборки, чтобы объединить несколько файлов вместе так:

// settings
var FILE_ENCODING = 'utf-8',
    EOL = '\n',
    DIST_FILE_PATH = 'dist/myAwesomeScript.js';

// setup
var _fs = require('fs');

function concat(fileList, distPath) {
    var out = fileList.map(function(filePath){
            return _fs.readFileSync(filePath, FILE_ENCODING);
        });
    _fs.writeFileSync(distPath, out.join(EOL), FILE_ENCODING);
    console.log(' '+ distPath +' built.');
}

concat([
    'foo/bar.js',
    'foo/lorem.js',
    'foo/maecennas.js'
], DIST_FILE_PATH);

Это действительно работает как шарм. Однако он работает, только если я поместил все мои скрипты в каталог nodejs, который является C:\Program Files (x86)\nodejs, и начните процесс cmd с правами администратора.

Но мне нужно иметь файлы проектов в другом каталоге (скажем D:\ git\projectx \) и хотели бы иметь возможность запускать: node.exe D:\git\projectx\comb.js. Несчастливо все так не работает, потому что node.exe будет искать файлы в его собственном каталоге, который является C:\Program Files (x86)\nodejs. Должно быть, нужно запустить процесс nodejs и сказать ему использовать другой каталог в качестве рабочего каталога, не так ли?

UPDATE

Как кто-то указал на IRC. Решение моей проблемы было довольно простым. Просто cd в D:\git\projectx, а затем используйте node.exe combine.js. Это делает так, чтобы текущий каталог внутри вашего script указывал на D:\git\projectx

Тем не менее, я согласен с ответом Люка, поскольку это, похоже, также верно; -)

Ответы

Ответ 1

Вы можете установить текущий рабочий каталог с помощью process.chdir, используя имена путей в стиле Unix:

process.chdir('/temp/foo');

Я не уверен, как указать префикс диска (D:), хотя.

Ответ 2

process.chdir('D:\\git\\projectx')

Ответ 3

Вы всегда можете использовать __dirname для представления каталога script, в котором вы находитесь...

process.chdir(__dirname);

Ответ 4

На самом деле это

process.chdir('D:\\\git\\projectx')