Angularjs 无法启动Karma测试:未捕获错误:模块名称;http「;尚未加载

Angularjs 无法启动Karma测试:未捕获错误:模块名称;http「;尚未加载,angularjs,node.js,requirejs,karma-jasmine,Angularjs,Node.js,Requirejs,Karma Jasmine,我在运行karma测试时遇到此错误 Uncaught Error: Module name "http" has not been loaded yet for context: _. Use require([]) http://requirejs.org/docs/errors.html#notloaded at C:/projects/xxx_Phase_II/xxx/xxx-web/src/test/javascript/config/node_modules/requirejs/req

我在运行karma测试时遇到此错误

Uncaught Error: Module name "http" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded
at C:/projects/xxx_Phase_II/xxx/xxx-web/src/test/javascript/config/node_modules/requirejs/require.js:140
它的根位于
devrestproxy.js
第一行

var http = require('http');
我的
package.json
如下所示

{
"name": "myApp",
"description": "myApp Web UI",
"engines": {
"node": ">= 0.8.4"
},
"dependencies": {
"express": ">=3.x",
"karma": ">=0.13",
"request": ">=2.27.0"
},
"scripts": {
"pretest": "start node server.js",
"karma": "node ./node_modules/karma/bin/karma start ./karma.unit.conf.js",
"test": "node ./node_modules/karma/bin/karma start ./karma.e2e.conf.js"
},
"version": "0.1.0",
"devDependencies": {
  "jasmine-core": "^2.4.1",
  "jasmine-jquery": "^2.1.1",
  "karma-chrome-launcher": "^0.2.2",
  "karma-jasmine": "^0.3.7",
  "karma-requirejs": "^0.2.5",
 "dev-rest-proxy": "^0.3.0"
 }
}
我的
karma.unit.config.js
如下所示:

module.exports = function (config) {
    config.set({
        basePath: '../../../',

        frameworks: ['jasmine', 'requirejs'],
        files: files: [
            'app/vendor/**/**/*.js'
        ]


        reporters: ['progress'],

        junitReporter: {
            outputFile: 'test_out/unit.xml',
            suite: 'unit'
        },

        port: 9876,

        runnerPort: 9100,

        colors: true,

        logLevel: config.LOG_INFO,

        autoWatch: true,

        browsers: ['Chrome'],

        captureTimeout: 60000,

        singleRun: false
    });
};

我修好了。我在
files
中给出的模式过于复杂,因为它包含了节点服务器端文件,如
devrestproxy.js
。我的
karma.unit.config.js
有:

        files: [
           'app/vendor/**/**/*.js'
        ], 
因此,它将包括以下文件:

app/vendor/node_modules/dev-rest-proxy/dev-rest-proxy.js
dev rest代理
是后端节点的东西,不应该加载到浏览器上,也就是说,它指的是像“http”这样的代码/模块,它纯粹是一个服务器端脚本

我错过的重要线索是错误消息本身:

Module name “http” has not been loaded
http
是节点的服务器端模块