我有以下目录结构:
--app
|---dots
| |---some.js
|
|---entry.js
|---bootstrap.js
|---karma.conf.js
|---test-main.js
|---test
|---sampleSpec.js
这是我的sampleSpec
依赖项:
define(["app/bootstrap", "app/dots/some"], function () {}]
据我了解,我使用requirejs将bootstrap
和some
文件加载到浏览器中。但是,根据我是否在dots/*
文件中指定karma.conf.js
文件夹,karma服务器成功或无法解析dots/some.js
文件。我的意思是如果我在pattern: 'app/**/*.js'
中指定以下karma.conf.js
:
files: [
'test-main.js',
{pattern: 'app/**/*.js', included: false},
{pattern: 'test/*Spec.js', included: false}
],
dots/some.js
文件被加载到浏览器中,如果我这样指定pattern: 'app/*.js'
karma服务器返回404
- 找不到文件。为什么会这样?如果我使用karma
加载它,为什么requirejs
会关心路径?
答案 0 :(得分:13)
当你解雇业力时,业力的作用是:
网络服务器需要知道您拥有自己资产的位置,以及是否要直接从网页提供资源或稍后加载资源。
在您的karma配置文件中,您可以通过多种方式配置加载方式:
...
files: [
'test-main.js',
{pattern: 'app/**/*.js', included: true, watched: false, served: true},
...
],
proxies: {
'/img/': 'http://localhost:8080/base/test/images/'
}
在files
数组中,您可以放置要包含,观看和投放的所有资源。
如果您想要使用自定义网址(假设您的应用中有特定路线),您可以告诉业力如何将该自定义网址反映到静态网址,或者只是为了映射它(比如说你好了)使用第三方服务。)
如果某个文件没有映射,那么业力就无法投放,所以当您要求时,您的请求会有HTTP 404
响应。 >
Karma还接受regexp模式(迷你匹配字符串)作为路由 - 如文档中所指定 - 因此app/**/*.js
将匹配app
中任何级别的任何js文件,而app/*.js
仅匹配JS文件严格位于app
文件夹中。
如果是代理,说您有兴趣提供图片,karma会设置一个静态服务器,http://localhost:8080/base
映射您的项目根目录。
如需完整说明,请查看karma documentation。