Неожиданно в «личной» папке при изменении рабочего каталога на временную папку

Я получаю неожиданные результаты при попытке создать и изменить рабочий каталог на временную папку с помощью 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. Что тут происходит?


person ThomasReggi    schedule 05.08.2015    source источник
comment
Эй, ты нашел способ разрешить этот конфликт?   -  person Valery Bugakov    schedule 14.05.2016
comment
@skymk нет, до сих пор не знаю, почему это происходит.   -  person ThomasReggi    schedule 14.05.2016


Ответы (1)


У меня была аналогичная проблема. Я подозреваю, что где-то там есть символическая ссылка. Вы можете сделать что-то вроде этого, чтобы получить фактический путь:

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

person JayPea    schedule 04.11.2016