【问题标题】:How to set working directory for Node.js on windows?如何在 Windows 上为 Node.js 设置工作目录?
【发布时间】:2016-07-20 08:25:50
【问题描述】:

我刚刚为 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);

这真的像一个魅力。但是,它只有在我将所有脚本放入 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进程并告诉它使用另一个目录作为它的工作目录,我错了吗?

更新

正如有人在 IRC 上指出的那样。我的问题的解决方案相当简单。只需将cd 转换为D:\git\projectx,然后使用node.exe combine.js。这使得脚本中的当前目录指向D:\git\projectx

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

【问题讨论】:

    标签: windows node.js


    【解决方案1】:

    你可以使用process.chdir,使用Unix风格的路径名来设置当前工作目录:

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

    我不确定如何指定驱动器前缀 (D:)。

    【讨论】:

    • 只需将驱动器添加到目录字符串中。 process.chdir('c:/users'); process.cwd() 结果:'c:\\users'
    • 如何以及在哪里使用它?我们应该在哪里写这行?我在 hit and trial base 上写的,没能成功
    【解决方案2】:

    您总是可以使用__dirname 来表示您所在的脚本目录...

    process.chdir(__dirname);
    

    【讨论】:

      【解决方案3】:
      process.chdir('D:\\git\\projectx')
      

      【讨论】:

        【解决方案4】:

        其实是

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

        【讨论】:

        • 这(几乎)与上面的答案相同。
        • 嗯,实际上是 process.chdir('D:\\git\\projectx') - D: 后面的 2 个斜线,而不是 3 个
        猜你喜欢
        • 1970-01-01
        • 2013-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-09
        • 2023-03-02
        • 1970-01-01
        • 2018-04-15
        相关资源
        最近更新 更多