4

我正在尝试在 angular-cli 项目中安装 jasmine 插件“jasmine-ajax”。这些说明看起来很标准,但我一直收到这个错误:

“src/app/app.component.spec.ts(8,13) 中的错误:错误 TS2339:类型 'typeof jasmine' 上不存在属性 'Ajax'。”

我一直在 jasmine.Ajax.install() 上看到错误

在我的 karma.conf.js 文件中,我有这个:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine-ajax', 'jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular/cli/plugins/karma'),
      require('karma-jasmine-ajax')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    angularCli: {
      environment: 'dev'
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};

我还尝试使用 jasmine.json 中的 helpers 部分添加插件。这是我的 jasmine.json 文件的样子:

{
    "spec_dir": "spec",
    "spec_files": [
        "**/*[sS]pec.js"
    ],
    "helpers": [
        "helpers/**/*.js",
        "../../../node_modules/jasmine-ajax/lib/mock-ajax.js"
    ],
    "stopSpecOnExpectationFailure": false,
    "random": true
}

最近有人成功安装了 jasmine-ajax 插件吗?

会不会是 jasmine-ajax 的版本?

4

1 回答 1

0

你在正确的道路上。您需要安装 TypeScript 的类型定义:

npm i @types/jasmine-ajax

并将它们包含在您的e2e/tsconfig.e2e.json 中

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/e2e",
    "baseUrl": "./",
    "module": "commonjs",
    "target": "es5",
    "types": [
      "jasmine",
      "jasminewd2",
      "node",
      "jasmine-ajax"
    ]
  }
}
于 2019-02-06T09:14:57.823 回答