gpt4 book ai didi

javascript - 无法为实习生设置 baseUrl

转载 作者:行者123 更新时间:2023-11-29 14:51:44 26 4
gpt4 key购买 nike

我的项目遵循以下(简化的)目录结构:

\
|- app
|- script1.js
|- script2.js
|- test
|- intern.conf.js
|- test.spec.js

我在我的应用程序中使用 requirejs,因此 app/ 目录下的所有脚本都具有相对于该文件夹的依赖关系。

由于Intern baseUrl默认为根文件夹,app/下的脚本加载失败。

但是,将loader下的baseUrl设置为'app'或'/app'等,会导致无法加载测试套件..

Error: Failed to load module ../test/intern.conf from test/intern.conf.js (parent: *2)

我尝试将测试套件位置设置为“../test/test.spec.js”等等,但没有成功。

最佳答案

baseUrl必须是所有模块(包括测试模块)通用的基本 URL,因此在您的情况下将是 app 的父目录和 test目录。通常这意味着您将 cd到父目录并从那里简单地运行 Intern,例如 intern-runner config=test/intern.conf ,无需额外的加载器配置。

如果你确实需要额外的配置(例如,将 app 定义为一个包),你的 Intern 配置文件中的加载器配置不需要与你的应用程序中的加载器配置相同,所以在实践中两者之间的任何差异都不应成为问题。您的应用程序入口点中将有一种配置适用于您的应用,而测试配置中的一种配置适用于您的测试环境。

相对 AMD 模块 ID 是相对于模块本身的,所以如果您的模块 app/script1有一个依赖 ./script2 ,它将正确加载 /root/app/script2.js , 不是 /root/script2.js .当您加载 app/script1来自你的 test/test.spec模块,只要你的 baseUrl是父目录,你可以要求 ../app/script1 (如果这有意义,即如果两者是同一逻辑包的一部分)或 app/script1 (如果 testapp 应该是两个不同的包)。

关于javascript - 无法为实习生设置 baseUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24619918/

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