繁体   English   中英

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

[英]How to load resource from a relative path in a nodejs module?

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

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

简单地登录__filename可以在这里__filename帮助。 它显示在vscode下,执行文件是已编译的JS文件,而在Mocha下,它是打字稿源文件。 我跑:

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

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

好的,事实很简单。 不要使用ts代码运行mocha,而应使用已编译的代码。 仅在测试之前需要进行转译:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM