首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >karma config将文件移动到基目录

karma config将文件移动到基目录
EN

Stack Overflow用户
提问于 2017-09-06 08:47:16
回答 1查看 614关注 0票数 1

有没有办法将Karma配置中加载的文件移到新目录中,比如/base/?我有一个包含源文件的外部项目。我可以通过../../directory加载文件。但是,它会将文件插入到/absolute/文件夹中。如果我在另一台计算机上加载测试,则/absolute/的目录不同。有没有我遗漏的预处理器或配置?我搜索了karma文档,但找不到我要找的东西。

代码语言:javascript
复制
 // list of files / patterns to load in the browser
files: [   
    { pattern: 'node_modules/jquery/dist/jquery.min.js', included: false },
    { pattern: 'node_modules/knockout/build/output/knockout-latest.js', included: false },
    { pattern: 'node_modules/knockout-mapping/dist/knockout.mapping.min.js', included: false },
    { pattern: 'node_modules/knockout-postbox/build/knockout-postbox.min.js', included: false },
    { pattern: '../FantasyFootball/wwwroot/js/site.js', included: false, served: true, watched: true },
    { pattern: 'tests/*.js', included: false },
    { pattern: 'test-main.js', included: true }         
],
EN

回答 1

Stack Overflow用户

发布于 2018-09-14 01:02:19

Karma为您请求它加载Karma的basePath之外的文件生成以/absolute/...开头的路径。Karma之所以这样做,是因为没有一种简单的方法可以通过通常的/base/路径提供这些文件的路径,该路径既是唯一的,又是可推断的。如果你要给basePath上面的文件提供一个相对路径,Karma不能仅仅把它和/base/结合起来。例如,如果您的files数组中有../my/file.js../../my/file.js,然后与/base/结合使用,则它们都将转换为路径/my/file.js。对于这样的情况,Karma通过使用/absolute/并附加磁盘上文件的绝对路径来生成唯一且可推断的路径。

好的,那么你该怎么做呢?您希望Karma在basePath之外加载文件,并且希望能够在加载器的设置中使用它们的路径。这个问题是可以克服的。您可以修改karma.conf.js以提供对计算所需路径有用的信息:

代码语言:javascript
复制
client: {
  absoluteTopDir: path.join("/absolute/", __dirname),
},

然后在test-main.js中,您需要使用absoluteTopDir参数:

代码语言:javascript
复制
var absoluteTopDir = window.__karma__.config.absoluteTopDir;
require.config({
  baseUrl: "...",
  paths: {
    foo: absoluteTopDir + "../../my/file",
  },
});

我已经运行Karma多年,没有遇到任何问题,但最近我遇到了您遇到的问题,并在我的一个测试套件中使用了上面描述的方法,取得了巨大的成功。

我在RequireJS和SystemJS上都使用过这个解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46065194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档