gpt4 book ai didi

Node.js:require 语句中的相对路径如何工作?

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:10 25 4
gpt4 key购买 nike

我正在使用jasmine-node运行 Jasmine 测试。我的项目具有包含“spec”和“src”文件夹的典型结构。

在我的“HelloSpec.js”文件中,我有:

require('../src/Hello.js');

但是,当我使用以下命令从项目的根文件夹(即“spec”和“src”的父文件夹)运行测试时:

jasmine-node spec/HelloSpec.js

我收到错误消息,表明实际上并不需要require文件。但是如果我将 require 语句更改为:

require('src/Hello.js');

一切顺利。因此,require 语句似乎正在解析相对于我执行测试的文件夹的路径,而不是相对于它们自己的文件位置的路径。但它会这样工作对我来说没有意义。

“require”中的相对路径应该如何工作?我需要做些什么来让它们按照我期望的方式工作吗?

谢谢!

最佳答案

通常当前目录的路径以./ 开头,表示当前目录。您的 src/Hello.js 是一个路径搜索,其中似乎包含项目文件夹。

我的理解是, require ./../ 与需要它的文件相关,或者至少这一直有效我。如果它不以其中任何一个开头,那么它通常会尝试路径搜索。

jasmine-node 不是我的经验所基于的 Node 。

jasmine-node 可能有不同的路径定义,这就是路径搜索似乎有效的原因。

如果没坏就不要修吗? :)

编辑正确答案

问题原来是我粗心。我忘了做 module.exports。我解决了这个问题,现在一切都按照我的预期进行。不知道为什么它在没有任何导出或 module.exports 的情况下以其他方式工作,但它是....无论如何,如果您想编辑您的答案以包含此评论,我会接受它

关于Node.js:require 语句中的相对路径如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16226955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com