Я видел слишком много разных ответов по этому поводу. И мне пришлось попробовать все разные методы, чтобы наконец понять, что происходит. У меня в karma.conf.js
тоже не было раздела plugins:
.
Итак, у меня есть проект 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
не сможет определить, что вы хотите от него делать.
person
Eakan Gopalakrishnan
schedule
26.04.2017
package.json
, и проделать тамnpm install
. - person M.K. Safi   schedule 28.09.2013