Карма выдает ошибку: не могу загрузить "ng-html2js", она не зарегистрирована
Я получаю сообщение об ошибке при запуске karma start
:
$ karma start
INFO [karma]: Karma v0.10.2 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
WARN [preprocess]: Can not load "ng-html2js", it is not registered!
Perhaps you are missing some plugin?
...
Но в моем файле пакета у меня есть "karma-ng-html2js-preprocessor": "*",
и папка с кодом для этого препроцессора существует в node_modules
,
Есть идеи как решить проблему?
4 ответа
В моих случаях проблема была связана с отсутствием karma-ng-html2js-preprocessor
внутри конфигурации кармы plugins
разделы. В уроках я видел, что вам не нужно добавлять 'ng-html2js'
внутри плагинов, но для меня это не работает без него.
Если вы запускаете и запускаете глобальную установку Karma, которая устанавливается вместе с -g
флаг и запускается без указания пути, т.е. karma start path/to/config.js
затем убедитесь, что плагины установлены глобально, т.е. npm install -g karma-ng-html2js-preprocessor
,
Если вы используете локальную установку Karma, т.е. path/to/karma start path/to/config.js
Затем убедитесь, что плагин также установлен локально для этого приложения.
Проверьте Загрузка плагинов в документах.
Если вы опустите plugins
свойство, он попытается загрузить все плагины, которые:
- С префиксом
karma-
, - Брат к
karma
модуль npm.
Итак, если ваша файловая структура:
- node_modules
- karma
- karma-chrome-launcher
- karma-firefox-launcher
...поскольку karma-chrome-launcher
а также karma-firefox-launcher
братья и сестры karma
модуль, который используется, и так как они оба начинаются с karma-
они будут загружены автоматически.
Но будьте осторожны - если у вас есть plugins
свойство определено, он будет загружать только те вещи, которые определены. То есть. если у вас есть plugins: ['karma-chrome-launcher']
не загружается karma-firefox-launcher
,
Некоторые вопросы, чтобы задать себе:
- Вы используете локальную версию
karma
или глобальная версия? - Все ли в курсе? Если не попробовать
npm update
или жеnpm uninstall
->npm install
, - У вас есть глобальные версии
karma-x
которые преобладают над местными?
Я видел слишком много разных типов ответов по этому поводу. И мне пришлось попробовать все возможные методы, чтобы наконец понять, что происходит. У меня не было plugins:
раздел в моем karma.conf.js
или.
Итак, у меня есть проект AwesomeKarmaTests
который содержит все файлы внутри папки с тем же именем.
AwesomeKarmaTests
\package.json
\karma.conf.js
\node_modules
\karma
\karma-jasmine
...
node_modules
каталог, очевидно, будет создан, когда вы cd AwesomeKarmaTests
и беги npm install
,
npm
будет затем просмотреть содержимое package.json
в папке, из которой он был вызван, и установите все перечисленные пакеты и дополнительные зависимости, если это необходимо.
Содержание моего package.json
{
"name": "AwesomeKarmaTests",
"version": "1.0.0",
"devDependencies": {
"karma": "^1.6.0",
"karma-jasmine": "^1.1.0",
"karma-junit-reporter": "^1.2.0",
"karma-ng-html2js-preprocessor": "^1.0.0",
"karma-phantomjs-launcher": "^1.0.4"
}
}
Я столкнулся с этой проблемой (Can not load "ng-html2js"
) изначально потому что karma
был установлен глобально в моей системе. Глобальный karma
установка будет искать karma-ng-html2js-preprocessor
пакет глобально, и он, очевидно, не сможет найти его, так как я не установил препроцессор глобально.
И я не мог понять, что происходит, так как каждый из devDependencies
в package.json
был уже установлен в node_modules
каталог внутри корневой папки проекта. Я продолжал бежать karma start
от AwesomeKarmaTests
папка, не понимая, что это была глобальная установка кармы, которая выполнялась (глупая я).
Однако после удаления karma
из моей глобальной установки я начал получать /c/Users/fastasticUser/AppData/Roaming/npm/karma: No such file or directory
ошибки. Именно тогда я осознал свою ошибку.
Затем я изменил свой подход. Я начал выполнять свои тесты, используя следующую команду, явно указав путь локальной установки кармы.
./node_modules/karma/bin/karma start karma.conf.js
от AwesomeKarmaTests
каталог. И, как упоминалось в нескольких других постах, karma выбрала свои родственные пакеты и плагины.
Так что не забудьте использовать локальные версии karma
пакет, если полагаться на другие локально установленные плагины или пакеты, иначе karma
будут проблемы с определением того, что вы хотите сделать.