我尝试过这解决方案,但效果不太好。
下面是上面链接中的示例代码:
require([
"doh/runner",
"http://sinonjs.org/releases/sinon-1.17.5.js"
], function(doh){
console.log(sinon);
});错误消息:
$ node ../../dojo/dojo.js load=doh test=tests/test_sinon_spy.js
Error: ENOENT: no such file or directory, open 'http://sinonjs.org/releases/sinon-1.17.5.js'此外,我还试图直接要求sinon.js。
sinon-1.17.5.js已被移到与runner.js__相同的目录doh中,并重命名为sinon__。(目录)
require([
"doh/runner",
"doh/sinon"
], function(doh, sinon){
console.log(sinon);
});没有错误消息,但是sinon没有定义:
$ node ../../dojo/dojo.js load=doh test=tests/test_sinon_spy.js
undefined
0 'tests to run in' 0 'groups'
------------------------------------------------------------
| TEST SUMMARY:
------------------------------------------------------------
0 tests in 0 groups
0 errors
0 failures我很确定第二个代码加载得很好。我通过直接修改sinon.js验证了这一点。但我不知道为什么西农不能打电话。
版本
node.js - v6.2.2
dojo/doh - 1.10.0
sinon - 1.17.5发布于 2016-08-08 10:15:03
更新
因为node.js和dojo都有需要API,但是它们是不同的。这种情况不起作用,因为它应该使用node.js的API来要求sinon.js而不是dojo。
Dojo提供了dojo/节点模块,它将直接调用node.js模块。
1. npm在dojo的同一目录下安装sinon
$ cd ../../dojo
$ npm install sinon2.修改代码以使用dojo/node
# test_sinon_spy.js
require([
"doh/runner",
"dojo/node!sinon"
], function(doh, sinon){
console.log(sinon);
})3.返回原始文件夹并运行测试
$ cd -
$ node ../../dojo/dojo.js load=doh test=tests/test_sinon_spy.js注意,在dojo目录下,它将包含npm_module/sinon
https://stackoverflow.com/questions/38823311
复制相似问题