Angular js 1.6.9 тесты неизвестный провайдер: $$ tasktrackerfactoryprovider

Мой проект вынужден быть в 1.6.9 из-за рисков регрессии (например, строчные буквы устарели в 1.7).

Но недавно я сделал обновление npm, и все мои тесты karma / phantomjs не работают, давая

PhantomJS 2.1.1 (Windows 7.0.0)
Error: [$injector:unpr] Unknown provider: $$taskTrackerFactoryProvider <- $$taskTrackerFactory <- $browser <- $rootScope <- $browser
http://errors.angularjs.org/1.6.9$injector/unpr?p0=%24%24taskTrackerFactoryProvider%20%3C-%20%24%24taskTrackerFactory%20%3C-%20%24browser%20%3C-%20%24rootScope%20%3C-%20%24browser in C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify (line 8627)
c:/Users/XXX/AppData/Local/angular/angular.js:4887:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8627:86
getService@c:/Users/XXX/AppData/Local/angular/angular.js:5047:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8787:39
c:/Users/XXX/AppData/Local/angular/angular.js:4892:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8632:48
getService@c:/Users/XXX/AppData/Local/angular/angular.js:5047:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8787:39
injectionArgs@c:/Users/XXX/AppData/Local/angular/angular.js:5072:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8812:68
invoke@c:/Users/XXX/AppData/Local/angular/angular.js:5098:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8838:31
c:/Users/XXX/AppData/Local/angular/angular.js:4893:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8633:43
getService@c:/Users/XXX/AppData/Local/angular/angular.js:5047:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8787:39
injectionArgs@c:/Users/XXX/AppData/Local/angular/angular.js:5072:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8812:68
invoke@c:/Users/XXX/AppData/Local/angular/angular.js:5098:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8838:31
$get@c:/Users/XXX/AppData/Local/angular/angular.js:4972:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8712:49
invoke@c:/Users/XXX/AppData/Local/angular/angular.js:5106:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8846:24
c:/Users/XXX/AppData/Local/angular/angular.js:4893:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8633:43
getService@c:/Users/XXX/AppData/Local/angular/angular.js:5047:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:8787:39
$$cleanup@c:/Users/XXX/AppData/Local/angular-mocks/angular-mocks.js:3281:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:3282:36
$$afterEach@c:/Users/XXX/AppData/Local/angular-mocks/angular-mocks.js:3253:0 <- C:/Users/XXX/AppData/Local/Temp/b99f75028e9c85bb8c30a356a1480903.browserify:3254:23

Мой package.json (я удалил проприетарные модули):

{
  "name": "XXX",
  "code": "XXX",
  "version": "1.0.0",
  "description": "XXX",
  "author": {
    "name": "XXX"
  },
  "devDependencies": {
    "angular-mocks": "^1.5.5",
    "browserify": "^13.3.0",
    "browserify-shim": "^3.8.12",
    "gulp": "^3.9.1",
    "yargs": "^6.0.0"
  },
  "dependencies": {
    "angular": "1.6.9",
    "angular-animate": "^1.5.5",
    "angular-sanitize": "~1.3.16",
    "angular-translate": "^2.7.0",
    "angular-ui-bootstrap": "^2.1.0",
    "angular-ui-router": "^0.3.0",
    "ng-device-detector": "^4.0.3"
  }
}

Переход на 1.7.3 устраняет проблему с тестами, но мой веб-сайт не работает, и мне потребуются полные нерегрессионные тесты, когда я решу первую проблему устаревания.

Быстрый поиск с плохими результатами показал, что taskTrackerFactoryProvider появился 13 июля в angular js, но обновление npm и сборка / тесты работали хорошо 24 июля ...

Я хотел бы знать, какой модуль может вызывать функциональность angular js 1.7, хотя я уже упоминал, что мне нужно работать с angular js 1.6 в моем package.json

Это определенно не по теме, но если вы имеете в виду удаляемую функцию angular.lowercase(), она устарела с angular 1.5, и в любом случае рекомендуется никогда не использовать помощники angular.x в производственном коде. (помимо того, что JavaScript .toLowerCase() - лучшая альтернатива). Любые другие изменения между 1.6.9 и 1.7 не должны влиять на большинство приложений.

Claies 11.08.2018 15:51

Проблема все еще присутствует в angular 1.7.4 с angular-mocks 1.7.4

wizulus 07.09.2018 20:43
10
2
1 488
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нашел, это был angular-mocks. Вынудил его до версии 1.6.9 и все работает хорошо

Я забит удивлен, что npm не может управлять зависимостями между ними, особенно когда депу требуется определенная функциональность от другого ...

Да благословит вас небо ваше солнце, и ваши дети унаследуют землю. Вы сэкономили мне несколько часов на поиске этого.

elpddev 25.03.2021 18:47

Другие вопросы по теме