【问题标题】:Dependency("lodash") not found error running mocha test in browser在浏览器中运行摩卡测试时找不到依赖项(“lodash”)错误
【发布时间】:2018-04-24 03:04:19
【问题描述】:

我有以下要测试的 AMD 导出模块

define(['lodash', 'log', './xxx'], function(_, log, XXX) {
 ......
});

我正在使用以下 测试脚本 (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 获取文件://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

【问题讨论】:

    标签: mocha javascript requirejs mocha.js lodash


    【解决方案1】:

    似乎没有安装 Lodash。 RequireJS 没有自动为您查找和安装库的功能。

    您需要先安装它。您可以通过npm install lodash-amd 获取node_modules 子目录中的副本。只要您将 Lodash 的构建安装为 AMD 模块(或 AMD 模块的集合),您就可以使用任何您想要的方法。 NPM 包lodash-amd 是“官方”AMD 版本。问题是 RequireJS 只理解 AMD 格式的模块。它有一些使用 CommonJS 模块来简化的工具,但最终它们需要封装在 define(...) 中,这使得它们成为 AMD 模块。

    然后您需要将其添加到您的paths。例如,如果您已将其复制到 lib

    require.config({
      baseUrl:'js/',
      paths:{
        jquery:'lib/jquery',
        lodash: 'lib/lodash',
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2014-07-28
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      相关资源
      最近更新 更多