离子单元测试:Webpack版本

Ale*_*lov 5 unit-testing karma-jasmine ionic-framework

我一直在尝试根据通用准则设置一个测试示例:在Ionic中测试Ionic GitHub示例

我的项目是package.json

{
  "name": "starter-with-testing",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "lint": "ionic-app-scripts lint",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve",
    "test": "karma start ./test-config/karma.conf.js"
  },
  "dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "5.2.11",
    "@angular/forms": "5.2.11",
    "@angular/http": "5.2.11",
    "@angular/platform-browser": "5.2.11",
    "@angular/platform-browser-dynamic": "5.2.11",
    "@ionic-native/core": "4.7.0",
    "@ionic-native/splash-screen": "4.7.0",
    "@ionic-native/status-bar": "4.7.0",
    "@ionic/storage": "2.1.3",
    "ionic-angular": "3.9.2",
    "ionicons": "3.0.0",
    "rxjs": "5.5.11",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "^3.1.10",
    "@types/jasmine": "^2.8.8",
    "@types/node": "^10.3.4",
    "angular2-template-loader": "^0.6.2",
    "html-loader": "^0.5.5",
    "istanbul-instrumenter-loader": "^3.0.1",
    "jasmine": "^3.1.0",
    "jasmine-spec-reporter": "^4.2.1",
    "karma": "^2.0.3",
    "karma-chrome-launcher": "^2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.1",
    "karma-jasmine": "^1.1.2",
    "karma-jasmine-html-reporter": "^1.1.0",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-webpack": "^3.0.0",
    "null-loader": "^0.1.1",
    "protractor": "^5.3.2",
    "ts-loader": "^4.4.1",
    "ts-node": "^6.1.2",
    "typescript": "~2.6.2"
  },
  "description": "An Ionic project"
}
Run Code Online (Sandbox Code Playgroud)

尝试$ npm test导致错误:

Chrome 67.0.3396 (Linux 0.0.0) ERROR
{
"message": "An error was thrown in afterAll\nUncaught Error: Module build failed: Error: You may be using an old version of webpack; please check you're using at least version 4\n    at successfulTypeScriptInstance (/home/alexey/spaces/cordova/starter-with-testing/node_modules/ts-loader/dist/instances.js:168:15)\n    at Object.getTypeScriptInstance (/home/alexey/spaces/cordova/starter-with-testing/node_modules/ts-loader/dist/instances.js:51:12)\n    at Object.loader (/home/alexey/spaces/cordova/starter-with-testing/node_modules/ts-loader/dist/index.js:16:41)"
Run Code Online (Sandbox Code Playgroud)

也就是说,需要webpack4.x。确实,

$ npm list webpack
starter-with-testing@0.0.1 /home/alexey/spaces/cordova/starter-with- 
testing
??? @ionic/app-scripts@3.1.10
  ??? webpack@3.8.1
Run Code Online (Sandbox Code Playgroud)

我应该做些什么?

UPD:

我有It looks like your post is mostly code; please add some more details.致命错误。您的问题无法提交。

我真的对更多细节一无所知。有一个依赖地狱;请帮忙。我会谦虚地提交您要求的其他详细信息。

小智 1

我通过简单地给出解决了同样的错误npm i webpack@latest
我没有进行任何自定义配置,所以它现在似乎可以工作。我只是发现编译需要很长时间,但我还没有看过它。