如何为Angular2测试配置webpack?

时间:2016-10-03 08:55:29

标签: angular webpack karma-jasmine

如何为Angular2测试配置webpack?

我已经设置了基于webpack的配置来测试Angular2 npm包。 无论如何,我一直得到如下错误:

  

错误:此测试模块使用正在使用“templateUrl”的组件PaginationComponent,但它们从未编译过。请在测试前调用“TestBed.compileComponents”。在karma-test-shim.js(第9952行)

在我看来,我做的一切都是正确的,它应该有效。 {(1}}和html文件应由webpack加载。

如果您想检查完整配置,我已将其上传至GitHub。您可以找到scsswebpack.test.jskarma.conf.js以及项目来源。它很小 - 一个组件项目。

有关完整的错误消息,您可以转到Travis CI

这是我的package.json配置:

webpack

1 个答案:

答案 0 :(得分:0)

问题在于TypeScript配置。

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true,
    "declaration": true,
    "outDir": "./lib",
    "noEmitHelpers": false,
    "isolatedModules": false
  },
  "compileOnSave": false,
  "buildOnSave": false,
  "exclude": [
    "components.d.ts",
    "typings/browser.d.ts",
    "typings/browser",
    "node_modules",
    "examples"
  ]
}

选项"declaration": true触发生成类型* .d.ts文件,启用IDE Intellisense会使webpack在测试期间抛出错误。

我通过在运行build时测试和取消注释时注释掉这一行来解决这个问题。