Karma Runner没有从tsconfig.json找到ES6模块的路径

时间:2018-05-17 21:35:05

标签: angular karma-runner es6-modules

我正在尝试加载生成Karma Config的外部模块。该模块基本上提供了karma.config.js的内容

这是一个Angular 6项目。设置是这样的,我的tsconfig.json看起来像

{
  "compileOnSave": true,
  "compilerOptions": {
    "module": "commonjs",
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noUnusedParameters": true,
    "skipLibCheck": true,
    "strictNullChecks": true,
    "sourceMap": true,
    "newLine": "LF",
    "moduleResolution": "node",
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ],
    "paths": {
      "test-config": [
        "dist/test-config"
      ]
    }
  }
}

test-config指向dist / test-config的映射。我确认该目录存在且其内容为真。

对angular.json我说像

这样的话

 "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "projects/components/src/test.ts",
            "tsConfig": "projects/components/tsconfig.json",
            "karmaConfig": "projects/components/karma.config.ts"
          }
        },

我的karma.config.ts将外部es6模块加载为第一行。

import { ExtendedKarmaConfig } from "test-config";

当我通过命令ng测试解雇karma runner时,它无法尝试查找test-config。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您应该将文件移动到其他位置。 cli构建时删除'/ dist'。另外,你告诉TS在目录/ dist / test-config下找到test-config。