在将工作目录更改为临时文件夹时,意外地出现在“专用”文件夹中

尝试使用Node.js创build工作目录并将其更改为临时文件夹时,出现了一些意外的结果。

这是一些代码:

var path = require('path') var fse = require('fs-extra') var TEST_DIR = path.join(os.tmpdir(), 'mydir') // creates temp path fse.emptyDirSync(TEST_DIR) // creates the dirs recursively process.chdir(TEST_DIR) // changes the CWD assert.equal(process.cwd(), TEST_DIR) // assert that these are the same 

这是什么被返回:

  AssertionError: '/private/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/mydir' == '/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/mydir' + expected - actual -/private/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/recursive-deps +/var/folders/jt/043tcrbs3m386w8kxjlf3jz00000gn/T/recursive-deps 

由于某些原因, TEST_DIR没有private前缀,并且CWD在private前面。 这里发生了什么事?

我有一个类似的问题。 我怀疑在那里有一个符号链接。 你可以做这样的事情来得到实际的path:

var TEST_DIR = fs.realpathSync(path.join(os.tmpdir(), 'mydir'))