[英]Using npm to install Karma & Jasmine testing framework for AngularJS- npm package has been renamed
我最近接手了使用AngularJS为其前端编写的应用程序的开发,并希望将一些自动化测试引入开发生命周期。
在对AngularJS可用的各种测试框架进行了一些研究之后,我决定使用Jasmine,因为它似乎最适合我们要运行的测试以及我们希望框架使用的功能提供。
我一直在遵循https://scotch.io/tutorials/testing-angularjs-with-jasmine-and-karma-part-1上的指南在我的开发环境中安装和设置Karma&Jasmine,但是遇到了问题遵循这些设置指南之前,我从未见过:
我已经找到标题为Karma Setup
的部分,并运行了命令:
npm install karma karma-jasmine jasmine-core karma-chrome-launcher --save-dev
这给了我以下命令行输出:
npm WARN不推荐使用angular-ui-router@1.0.3:此npm软件包“ angular-ui-router”已重命名为“ @ uirouter / angularjs”。 请更新您的package.json。 参见https://ui-router.github.io/blog/uirouter-scoped-packages/
angular-ui-router@1.0.3安装H:\\ included \\ Documents \\ repositories \\ jasmine \\ node_modules \\ angular-ui-router
节点migration / migratewarn.js
警告! 此npm软件包“ angular-ui-router”已重命名为“ @ uirouter / angularjs”。 请更新您的package.json有关详细信息,请参见https://ui-router.github.io/blog/uirouter-scoped-packages/ 。
jasmine@1.0.0 H:\\ included \\ Documents \\ repositories \\ jasmine
+-角度@ 1.6.6
+-角mo@1.6.6
`-angular-ui-router@1.0.3
npm警告可选的跳过选择性依赖性:fsevents@^1.0.0(node_modules \\ chokidar \\ node_modules \\ fsevents):
npm WARN notsup跳过可选依赖项:fsevents@1.1.2不受支持的平台:通缉{“ os”:“ darwin”,“ arch”:“ any”}(当前:{“ os”:“ win32”,“ arch”: “ x64”})
npm WARN jasmine@1.0.0没有描述
npm WARN jasmine@1.0.0没有存储库字段。
如错误消息清楚指出的那样,这是因为软件包angular-ui-router
已重命名为@uirouter/angularjs
。
为了解决这个问题,我在vi中打开了package.json文件,并更改了这一行:
"angular-ui-router": "^1.0.3",
至:
"@uirouter/angularjs": "^1.0.3",
如错误消息所述,(我在vi中转义了转义,并使用了:wq
命令写入文件并退出)并运行了以下命令:
npm install karma karma-jasmine jasmine-core karma-chrome-launcher --save-dev
再次。
但是,这给了我与以前相同的错误消息...当我再次在vi中打开package.json文件时,我看到我已更改的行已恢复为原来的样子。因此似乎运行npm install ...
命令会在安装Karma和Jasmine之前更改package.json文件,因此它在错误的位置查找了它们或其他东西。
谁能向我解释这里出了什么问题? 如何获得npm以成功安装Karma&Jasmine?
编辑
在遵循指南中的后续步骤时,我运行:
npm install -g karma-cl
和
npm install angular angular-ui-router angular-mocks --save-dev
然后尝试
karma init
但这会显示一条消息:
TypeError:无法读取未定义的属性“切片”,并列出了发生此错误的多个位置
我在Google上搜索了一段时间,发现使用Unix命令行安装Karma / Jasmine(我一直在使用MINGW32)时,这似乎是一个相对常见的问题。
我通过Windows CMD进行了尝试,但这给了我以下输出:
npm ERR! Windows_NT 10.0.15063
npm ERR! argv“ C:\\ Program Files \\ nodejs \\ node.exe”“ C:\\ Program Files \\ nodejs \\ node_modules \\ npm \\ bin \\ npm-cli.js”“安装”“ angular”“ angular-ui-reouter”“” angular -mocks“” --save-dev“
npm ERR! 节点v6.11.3
npm ERR! npm v3.10.10
npm ERR! 代码E404
npm ERR! 404注册表在https://registry.npmjs.org/angular-ui-reouter上返回了404 for GET
npm ERR! 404
npm ERR! 404'angular-ui-reouter'不在npm注册表中。
npm ERR! 404您应该请作者打扰以发布它(或使用您自己的名字!)
npm ERR! 404
npm ERR! 404请注意,您也可以从
npm ERR! 404 tarball,文件夹,http url或git url。
npm ERR! 请在任何支持请求中包括以下文件:
npm ERR! H:\\ included \\ Documents \\ repositories \\ jasmine \\ npm-debug.log
有人知道为什么吗? 如何成功安装这些软件包?
啊,刚发现我的命令有错字:
"angular-ui-reouter"
本来应该:
"angular-ui-router"
因此,正如我在其他地方发现的那样,它似乎不会在Unix命令行中运行,但会在Windows命令行中运行...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.