我已经看到了太多关于这个的不同类型的答案。我不得不尝试所有不同的方法来最终了解发生了什么。我的也没有一个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安装。全局安装会尝试全局查找包,但显然找不到它,因为我没有全局安装预处理器。 karmakarma-ng-html2js-preprocessor
而且我无法理解发生了什么,因为其中的每一个devDependencies都package.json已经安装在node_modules项目根文件夹内的目录中。我一直karma start从AwesomeKarmaTests文件夹中运行,却没有意识到正在执行的是全球安装的业力(我很傻)。
但是,karma从我的全局安装中卸载后,我开始收到/c/Users/fastasticUser/AppData/Roaming/npm/karma: No such file or directory错误。那是我意识到我的错误的时候。
然后我改变了我的方法。我开始使用以下命令运行我的测试,明确指定 karma 的本地安装路径。
./node_modules/karma/bin/karma start karma.conf.js从AwesomeKarmaTests目录。正如在其他几篇文章中提到的,业力确实选择了它的兄弟包和插件。
因此,在依赖其他本地安装的插件或包时,请记住使用包的本地版本,否则将无法识别您想要它做什么。karmakarma