如何在karma中为angular2配置代码目录?

时间:2016-08-11 02:42:22

标签: angular karma-runner

我在Angular2 5 minute QuickStart for TypeScript之后设置了一个新工作区 我跑了 npm test ,它运作良好。

然后我尝试将 app 目录重命名为其他

但是我不能让它发挥作用 我尝试修改 karma.conf.js 文件:

var appBase   = 'other/'

但是业力并没有进行我的测试。

然后我还修改了 systemjs.config.js

var map = {  
    'app':                        'other'

它仍然无法正常工作。

不幸的是,我发现相关文档非常混乱, 因为它通常没有说明如何将路径从浏览器映射到本地文件系统中的路径。

我也不明白 app 指的是服务器上的目录,浏览器中的路径或配置中的属性。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

通过将应用替换为其他来确定您要实现的目标,但这通常不是一个好习惯。

  

我也不知道app在哪里引用服务器上的目录,浏览器中的路径或配置中的属性。

app 是本地计算机中angular2-quickstart下的目录,您可以在其中编写实际的角度代码(components, services, directive, routers)。

当你启动karma时,它会运行一个本地服务器,它加载files数组中指定的所有依赖项/角度代码/测试。
不确定您可能错过了什么(没有发布错误消息),但您所做的更改并不是运行应用程序所需的唯一更改。喜欢:

var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' }, // <-- need to change it to 'other' as well
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
  };

但它会建议您坚持使用名称 app

答案 1 :(得分:0)

在我做出以下更改后,它起作用了:

karma.conf.js

var appBase   = 'other/'

<强>果报测试shim.js

function isBuiltFile(path) {
  var builtPath = '/base/other/';

<强> systemjs.config.js

var map = {
    'app':                        'other', // 'dist',