Как установить рабочий каталог для Node.js на Windows? - PullRequest
17 голосов
/ 31 марта 2012

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

// 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. Это делает так, чтобы текущий каталог в вашем скрипте указывал на D:\git\projectx

Однако я принимаю ответ Люка, так как он, похоже, тоже правдив; -)

Ответы [ 4 ]

27 голосов
/ 31 марта 2012

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

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

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

5 голосов
/ 20 июля 2016

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

process.chdir(__dirname);
4 голосов
/ 26 января 2014
process.chdir('D:\\git\\projectx')
0 голосов
/ 23 октября 2014

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

process.chdir('D:\\\git\\projectx')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...