我有以下AMD导出模块进行测试
define(['lodash', 'log', './xxx'], function(_, log, XXX) {
......
});
我正在使用以下mocha测试脚本( myTest.js ),该脚本将上述脚本用作依赖项:
define(["../../../yyy"], function(YYY) {
describe("Sample Module", function() {
it('should have a name', function() {
expect(YYY.name).to.be.a("string");
});
});
return {
name: "modulespec"
}
});
使用以下测试运行器在浏览器上运行它:
<div id="mocha"></div>
<script type="text/javascript" src="js/lib/require.js"></script>
<script type="text/javascript">
require.config(
{
baseUrl:'js/',
paths:{
'jquery':'lib/jquery'
}
}
);
require(['require', 'lib/chai', 'lib/mocha'], function(require){
mocha.setup('bdd');
require(['spec/myTest'], function(module){
console.log("module: ", module);
mocha.run();
});
});
</script>
我在浏览器上运行测试时遇到以下错误:
require.js:1677 GET file:///home/malintha/projects /.../mocha/js/lodash.js net :: ERR_FILE_NOT_FOUND
如何包含“lodash”依赖项来解决此问题?
我的文件夹结构是:
.
├── js
│ ├── lib
│ │ ├── chai.js
│ │ ├── mocha.js
│ │ ├── module-b.js
│ │ ├── require.js
│ │ └── should.js
│ ├── SampleModule.js
│ └── spec
│ |
│ └── myTest.js
├── mocha.css
└── runner.html
答案 0 :(得分:1)
似乎没有安装Lodash。 RequireJS没有为您自动查找和安装库的功能。
您需要先安装它。您可以npm install lodash-amd
在node_modules
子目录中获取副本。您可以使用任何方法,只要您将Lodash版本安装为AMD模块(或AMD模块的集合)。 NPM包lodash-amd
是&#34;官方&#34; AMD打造。问题是RequireJS只能理解AMD格式的模块。它有一些设施可以使用CommonJS模块进行一些简化,但最终需要将它们包装在define(...)
中,这使它们成为AMD模块。
然后您需要将其添加到paths
。例如,如果您已将其复制到lib
:
require.config({
baseUrl:'js/',
paths:{
jquery:'lib/jquery',
lodash: 'lib/lodash',
}
});