Angularjs 无法启动Karma测试:未捕获错误:模块名称;http「;尚未加载
我在运行karma测试时遇到此错误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
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
是节点的服务器端模块