如何从nodejs模块中的相对路径加载资源?

时间:2017-06-03 14:47:08

标签: node.js visual-studio-code vscode-extensions

在我的一个NodeJS模块中,我需要访问一个文件,该文件是自己文件夹中的模块的一部分(用于单元测试)。它在调用文件中尝试了__dirname,其中包含该资源文件的相对路径。这在从vscode内部运行时起作用,但在终端中执行npm test时不起作用。在这种情况下,构建的路径是一个级别。怎么会这样?

我必须补充一点,我正在使用打字稿进行编码,使用Mocha进行单元测试。

只需记录__filename有点帮助。它表明在vscode下执行文件是已转换的JS文件,而在Mocha下它是typescript源文件。我跑:

mocha --compilers ts:ts-node/register,tsx:ts-node/register

我的测试。知道如何克服这个问题并确保使用正确的路径(除了测试__filename是否以.ts结尾)?

1 个答案:

答案 0 :(得分:0)

好的,结果很简单。不使用ts代码运行mocha,而是使用转换后的代码。在测试之前只需要进行转换运行:

  "scripts": {
    "prepublish": "tsc",
    "install": "tsc",
    "test": "tsc && mocha out/test"
  },