Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在摩卡处理未安装npm的依赖项?_Javascript_Node.js_Mocha.js_Require - Fatal编程技术网

Javascript 在摩卡处理未安装npm的依赖项?

Javascript 在摩卡处理未安装npm的依赖项?,javascript,node.js,mocha.js,require,Javascript,Node.js,Mocha.js,Require,我有一个工作节点应用程序,我正在尝试添加Mocha测试,但得到一些奇怪的导入错误 这是我的文件结构: package.json index.js src/ chart.js test/ test_chart.js 这就是我的chart.js文件的外观: global.jQuery = require('jquery'); global.$ = global.jQuery; require('typeahead'); require('bloodhound'); var bootstra

我有一个工作节点应用程序,我正在尝试添加Mocha测试,但得到一些奇怪的导入错误

这是我的文件结构:

package.json
index.js
src/
  chart.js
test/
  test_chart.js
这就是我的
chart.js
文件的外观:

global.jQuery = require('jquery');
global.$ = global.jQuery;
require('typeahead');
require('bloodhound');
var bootstrap = require('bootstrap');
var Handlebars = require('handlebars');
var Highcharts = require('highcharts-browserify');
var parse = require('csv-parse');
var moment = require('moment');
var analyseChart = {
  doSomething: function() { ... }
};
module.exports = analyseChart;
目前,我将
/src
中的所有内容导入到一个
index.js
文件中,然后将其与
browserify
捆绑在一起,该文件工作正常,应用程序中没有错误

我在package.json中有一节定义了npm无法提供的依赖项,如下所示:

 "browser": {
   "chosen": "./vendor/chosen.jquery.min.js",
   "typeahead": "./vendor/typeahead.bundle.js",
   "bloodhound": "./vendor/bloodhound.js"
 }
现在我想开始为
/src
中的函数编写Mocha测试

这是我在
test_chart.js
中的第一个存根:

var chart = require('../src/chart');
chart.doSomething();
但是当我运行
mocha
时,我得到以下错误:

 /Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2
var proto = Element.prototype;
            ^
ReferenceError: Element is not defined
    at Object.<anonymous> (/Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/node_modules/typeahead/node_modules/dom/index.js:4:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/node_modules/typeahead/typeahead.js:3:11)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/src/chart.js:3:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/.../js/test/test_chart.js:3:13)
/Users/../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2
var proto=Element.prototype;
^
ReferenceError:未定义元素
反对。(/Users/../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2:13)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
反对。(/Users/../js/node_modules/typeahead/node_modules/dom/index.js:4:15)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
反对。(/Users/../js/node_modules/typeahead/typeahead.js:3:11)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
反对。(/Users/../js/src/chart.js:3:1)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
反对。(/Users/../js/test/test_chart.js:3:13)
如何修复Mocha的此导入错误

我想它可能不喜欢
require('typeahead')
,因为它看不到我在
package.json
中设置的
browser
依赖路径

有什么方法可以让摩卡和browserify都可以使用这些文件吗


或者我应该同时使用另一个测试包吗?

这是节点应用程序还是浏览器应用程序(或者两者都使用)?测试服务器端代码或客户端/浏览器端代码时是否遇到问题?在我看来,这可能是客户端代码。如果是这样,是在浏览器中测试还是尝试在节点中测试?你能展示失败的单元测试吗?你可能应该使用类似Karma的东西,但这超出了问题的范围。