将工作目录更改为临时文件夹时,意外地在'private'文件夹中

时间:2015-08-05 21:23:18

标签: javascript node.js operating-system temp

尝试使用Node.js创建工作目录并将其更改为临时文件夹时,我得到了一些意想不到的结果。

以下是一些代码:

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中开头。这是怎么回事?

1 个答案:

答案 0 :(得分:0)

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

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