fs.readDirSync在打字稿中找不到目录?

时间:2019-06-15 13:09:20

标签: node.js fs

这是一个非常简单的方法,我希望可以从js工作:

import * as fs from 'fs';
var testDir = './tests';

// Add each .js file to the mocha instance
fs.readdirSync(testDir)
  .filter(function(file) {
    // Only keep the .js files
    return file.substr(-3) === '.js';
  })
  .forEach(function(file) {
    mochaInstance.addFile(path.join(testDir, file));
  });

我正在运行此代码的转译版本,但这会引发错误:

  

错误:ENOENT:没有这样的文件或目录,scandir'./tests'       在Object.readdirSync(fs.js:783:3)

我该如何解决?我确定文件“ ./tests”的目录正确,我的节点版本是v10.13.0

1 个答案:

答案 0 :(得分:2)

您必须使用__dirname,它是Node.js中的全局变量,用于获取应用程序的当前目录。结合路径,您最终可能会使用以下内容:

mochaInstance.addFile(path.join(__dirname, testDir, file));