如何在Windows上设置Node.js的工作目录?

Chr*_*oph 18 windows node.js

我刚刚为windows安装了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);
Run Code Online (Sandbox Code Playgroud)

这真的很有魅力.但是,只有将我的所有脚本放入nodejs目录(即C:\ Program Files(x86)\nodejs)并使用管理员权限启动cmd进程时,它才有效.

但我需要将我的项目文件放在另一个目录(比如D:\ git\projectx \)中,并且希望能够运行:node.exe D:\ git\projectx\combine.js.不幸的是,这样的事情不起作用,因为node.exe将在它自己的目录中查找文件,即C:\ Program Files(x86)\nodejs.必须要离开启动nodejs进程并告诉它使用另一个目录作为其工作目录,我错了吗?

UPDATE

正如有人在IRC上指出的那样.我的问题的解决方案相当简单.刚cd进入D:\git\projectx再使用node.exe combine.js.这使得脚本中的当前目录指向它D:\git\projectx

但是,我接受了卢克的回答,因为它似乎也是真的;-)

Luk*_*vin 29

您可以使用process.chdir使用Unix样式的路径名设置当前工作目录:

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

我不知道如何指定驱动器前缀(D:).

  • 只需将驱动器添加到目录字符串即可.`process.chdir( 'C:/用户'); process.cwd()`result:`'c:\\ users'` (2认同)

Tra*_*er1 6

您始终可以使用它__dirname来表示您所在脚本的目录...

process.chdir(__dirname);
Run Code Online (Sandbox Code Playgroud)


小智 5

process.chdir('D:\\git\\projectx')
Run Code Online (Sandbox Code Playgroud)