【问题标题】:How to load resource from a relative path in a nodejs module?如何从 nodejs 模块中的相对路径加载资源?
【发布时间】:2017-06-03 14:47:07
【问题描述】:

在我的一个 NodeJS 模块中,我需要访问一个属于自己文件夹中模块一部分的文件(用于单元测试)。它在调用文件中尝试了__dirname,并带有该资源文件的相对路径。这在从 vscode 中运行时有效,但在终端中执行 npm test 时无效。在这种情况下,构造的路径是一层。怎么可能?

我必须补充一点,我使用 typescript 进行编码,使用 Mocha 进行单元测试。

在这里简单地记录__filename 会有所帮助。可见在 vscode 下执行文件是转译后的 JS 文件,而在 Mocha 下是打字稿源文件。我跑:

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

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

【问题讨论】:

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


    【解决方案1】:

    好的,结果很简单。与其使用 ts 代码运行 mocha,不如让它使用转译的代码。只需要在测试前运行转译:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多