gpt4 book ai didi

javascript - 使用 Browserify 时无法加载用于实习生测试的模块

转载 作者:行者123 更新时间:2023-11-29 10:15:52 26 4
gpt4 key购买 nike

我正在尝试使用 Intern 对我的一个模块 tested.js 进行单元测试,它依赖于另一个模块 dependency.js。因为我使用的是 Browserify,tested.js 包含以下行:

var dep = require('./lib/dependency.js');

实习生抛出以下错误:

Warning: Error: Attempt to require unloaded module lib/dependency.js

这是我的测试文件的开头:

define([

'intern!object',

'intern/chai!assert',

'src/js/tested'

], function (registerSuite, assert, tested) {

registerSuite({
// ...

我的实习生配置文件使用默认的 Dojo 加载器。我曾尝试改用 RequireJS,但无法使其正常工作(似乎实习生在使用替代 AMD 加载器时遇到了一些持续的问题:https://github.com/theintern/intern/issues/147https://github.com/theintern/intern/pull/132#issuecomment-33403157)。

如何让 Intern 正确加载所需的依赖项?

编辑:我正在使用 grunt-browserify,但我正在单元测试未 Browserified 模块——我只是提到 Browserify 来解释我为什么使用“require”。

最佳答案

如果不在 Browserify 中运行,就无法在浏览器中加载 CJS/Node.js 模块;这就是 Browserify 的全部目的。您需要预浏览模块,为您的应用程序切换到使用 AMD 模块而不是 CJS 模块,或者引入一个代理来动态转换模块。

如果您尝试通过 Intern 在 Node.js 中加载 CJS 模块,则需要使用 intern/dojo/node 模块来促进加载:

define([

'intern!object',

'intern/chai!assert',

'intern/dojo/node!src/js/tested'

], function (registerSuite, assert, tested) {

registerSuite({
// ...

有关这方面的更多信息,请参阅 Testing Non-AMD code文档部分。

关于javascript - 使用 Browserify 时无法加载用于实习生测试的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853674/

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