Javascript Can';t使用Browserify时加载实习测试模块
我正在尝试使用Intern对我的一个模块进行单元测试,Javascript Can';t使用Browserify时加载实习测试模块,javascript,module,require,browserify,intern,Javascript,Module,Require,Browserify,Intern,我正在尝试使用Intern对我的一个模块进行单元测试,tested.js,它依赖于另一个模块,dependency.js。因为我使用的是Browserify,tested.js包含以下行: var dep = require('./lib/dependency.js'); Intern抛出以下错误: Warning: Error: Attempt to require unloaded module lib/dependency.js 这是我的测试文件的开始: define([ '
tested.js
,它依赖于另一个模块,dependency.js
。因为我使用的是Browserify,tested.js
包含以下行:
var dep = require('./lib/dependency.js');
Intern抛出以下错误:
Warning: Error: Attempt to require unloaded module lib/dependency.js
这是我的测试文件的开始:
define([
'intern!object',
'intern/chai!assert',
'src/js/tested'
], function (registerSuite, assert, tested) {
registerSuite({
// ...
我的Intern配置文件使用默认的Dojo加载程序。我尝试过使用RequireJS,但无法使其正常工作(似乎Intern在使用其他AMD加载程序时存在一些持续的问题:,)
如何让Intern正确加载所需的依赖项
编辑:我正在使用grunt browserify,但我正在单元测试un-browserify模块-我提到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({
// ...
有关这方面的更多信息,请参阅文档部分。+1我一直在讨论这个问题。你要传递什么旗帜来浏览?2.为什么你认为使用RequireJS会有不同的效果?3.您引用的问题不会影响您使用Browserified代码的任何内容。@CSnover我编辑了我的问题,希望能让它更清楚一些。我不会更改grunt browserify的任何默认选项。我尝试使用RequireJS查看它是否有帮助,因为错误似乎涉及加载模块。
intern/dojo/node
模块正是我所需要的,谢谢!您知道它是否与dojo的别名配置选项一起工作吗?我当前在intern.js
文件中有loader:{alias:[[['lib/dependency:'dependency]]}
,但无法识别别名。如果您试图重新映射模块,请使用map
,而不是别名<代码>地图
是地图的一部分<代码>别名令人困惑且不标准。我已更改为加载程序:{map:{'src/js/tested:{'dependency':'lib/dependency'}}}}
,但仍然没有乐趣。只能重新映射AMD模块。这是一本书。