files
数组确定哪些文件包含在浏览器中,由 Karma 监视和提供服务。
files
#类型。 数组 无默认值。 此属性是必需的。 描述。 每个项目要么是字符串(等效于 { pattern: "<string>" }
),要么是一个具有以下属性的对象
pattern
#type
#js
。css
- 使用 <link rel="stylesheet">
标签包含。html
- 使用HTML 导入包含。请注意,此功能已过时,在现代浏览器中无法使用。js
- 使用 <script></script>
标签包含。module
- 使用 <script type="module"></script>
标签包含。dom
- 在页面中内联文件的内容。例如,这可用于测试结合 HTML 和 JS 的组件。watched
#true
autoWatch
为 true
,则所有将 watched
设置为 true 的文件都将被监视以进行更改。included
#类型。 布尔值
默认值。 true
描述。 文件是否应使用 <script>
标签包含在浏览器中?如果要手动加载它们(例如,使用Require.js),请使用 false
。
如果一个文件被多个具有不同 include
属性的模式覆盖,则最具体的模式优先于其他模式。
模式的具体性定义为六元组,其中较大的元组表示较低的具体性:(nglob parts, nglob star, nstar, next glob, nrange, noptional)。元组按字典顺序进行比较。
nglob parts 是括号部分展开后模式的数量。例如,模式{0...9} 将产生nglob parts=10。元组的其余部分被确定为每个展开模式中最不具体的。
served
#true
nocache
#false
integrity
#undefined
integrity
HTML 属性值设置为加载与给定模式匹配的资源的 <script>
或 <link>
标签。basePath
#basePath
解析。basePath
是相对路径,则将其解析为配置文件所在目录。test/unit/**/*.spec.js
。根据预处理器配置,请注意加载的文件可能会被转换,并且不再以其原始格式可用。例如,如果启用了 html2js 预处理器,则不再提供实际的 .html 文件,而是作为 window.__html__['my.html']
可用。阅读有关预处理器的更多信息。
这是一个完整的示例,展示了所有可能的选项
files: [
// Detailed pattern to include a file. Similarly other options can be used
{ pattern: 'lib/angular.js', watched: false },
// Prefer to have watched false for library files. No need to watch them for changes
// simple pattern to load the needed testfiles
// equal to {pattern: 'test/unit/*.spec.js', watched: true, served: true, included: true}
'test/unit/*.spec.js',
// this file gets served but will be ignored by the watcher
// note if html2js preprocessor is active, reference as `window.__html__['compiled/index.html']`
{pattern: 'compiled/index.html', watched: false},
// this file only gets watched and is otherwise ignored
{pattern: 'app/index.html', included: false, served: false},
// this file will be served on demand from disk and will be ignored by the watcher
{pattern: 'compiled/app.js.map', included: false, served: true, watched: false, nocache: true}
],
模式也可以是绝对 URL。这允许包含 Karma 未提供的文件。
示例
config.set({
files: [
'https://example.com/my-lib.js',
{ pattern: 'https://example.com/my-lib', type: 'js' }
]
})
与常规文件路径相比,绝对 URL 有一些特殊规则
watched
始终为 false
included
始终为 true
served
始终为 false
nocache
始终为 false
默认情况下,所有资产都位于 http://localhost:[PORT]/base/
上提供服务
加载图像的示例
files: [
{pattern: 'test/images/*.jpg', watched: false, included: false, served: true, nocache: false}
],
该模式是一个通配符,它匹配指定的图像资产。Watched 和 included 不是必需的,因为图像不是测试。但是,它们需要提供给浏览器。
在这种情况下,可以通过 http://localhost:[PORT]/base/test/images/[MY IMAGE].jpg
访问图像。
请注意 URL 中的 base,它是对您的 basePath 的引用。您无需替换或提供自己的 base。
此外,您可以使用代理
proxies: {
"/img/": "http://localhost:8080/base/test/images/"
},
现在,您可以通过 http://localhost:8080/img/[MY IMAGE].jpg
获取 test/images
中的图像。
将 8080 更改为您使用的端口。
您还可以使用代理,而无需指定协议、主机名和端口。
proxies: {
"/img/": "/base/test/images/"
},
middleware
配置选项)。