作者:aijunli2502898197 | 来源:互联网 | 2023-05-27 10:52
我有以下目录结构:
--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 () {}]
所以,按照我的理解我加载bootstrap
并some
使用requirejs文件到浏览器中.但是,根据我是否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'
业力服务器返回404
- 文件未找到.为什么会这样?karma
如果我使用它加载它,为什么要关心路径requirejs
?
1> MarcoL..:
当你解雇业力时,业力的作用是:
它做了一些预处理工作
它创建了一个网页,您的网站资源已加载(css,js等...)
它创建了一个服务器来为您的资产提供服务
网络服务器需要知道您拥有自己的资产的位置,以及是否要直接从页面提供服务或稍后加载它们.
在您的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
只会严格匹配文件app
夹内的JS文件.
如果是代理,假设您有兴趣提供图像,则karma会设置一个静态服务器,用于http://localhost:8080/base
映射项目根目录.
有关完整说明,请查看业力文档.