Requirejs karma配置将文件移动到基本目录

Requirejs karma配置将文件移动到基本目录,requirejs,karma-runner,Requirejs,Karma Runner,是否有办法将Karma配置中加载的文件移动到新目录,例如/base/?我有一个包含源文件的外部项目。我可以通过。/../directory加载文件。但是,它会将文件插入到/absolute/文件夹中。如果我在另一台计算机上加载测试,则/absolute/的目录不同。是否有我缺少的预处理器或某些配置?我搜索了业力文档,但找不到我要找的东西 // list of files / patterns to load in the browser files: [ { pattern: '

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

 // 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 }         
],

Karma为您请求它访问的文件生成以
/absolute/…
开头的路径 加载Karma的
基本路径之外的文件
。因果报应这样做是因为没有 通过通常的
/base/
路径提供这些文件的路径的简单方法 既独特又可推断。如果要提供到的相对路径 文件位于
basePath
上方,Karma不能将其与
/base/
组合。例如, 如果在
文件
数组中有
。/my/file.js
。/../my/file.js
,则 结合
/base/
,它们都将变成路径
/my/file.js
。对于 在这种情况下,因果报应通过使用
/absolute/
并在磁盘上追加文件的绝对路径

好吧,那你现在还剩下什么?你想让Karma在外面加载文件
basePath
并且您希望能够在加载程序的设置中使用它们的路径。 这个问题是可以克服的。您可以修改
karma.conf.js
以提供 用于计算所需路径的有用信息:

client: {
  absoluteTopDir: path.join("/absolute/", __dirname),
},
然后在
testmain.js
中,需要使用
absoluteTopDir
参数:

var absoluteTopDir = window.__karma__.config.absoluteTopDir;
require.config({
  baseUrl: "...",
  paths: {
    foo: absoluteTopDir + "../../my/file",
  },
});
我多年来没有遇到任何麻烦,但最近遇到了这个问题 您在我的一个测试套件中遇到并使用了我上面描述的方法 巨大的成功

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