我们需要将Karma test runner集成到TeamCity中,为此,我想给sys工程师提供一个小脚本(powershell或其他什么),它将:

  1. 从一些配置文件中获取所需的版本号(我想我可以把它作为注释放在karma.conf.js中)

  2. 判断npm的全球回购协议中是否安装了定义版本的karma runner

  3. 如果不是,或者安装的版本比预期的旧: Select 并安装正确的版本

  4. 运行时间:karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

所以我真正的问题是:"如果安装了所需版本的软件包,如何签入脚本?".你应该判断一下,还是每次打npm -g install比较安全?

I don't want to always check and install the latest available version, because other config values may become incompatible

推荐答案

要判断项目中是否有"旧"模块,请执行以下操作:

npm outdated

"outdated"将判断package.json中定义的每个模块,并查看NPM注册表中是否有更新的版本.

例如,假设xml2js 0.2.6(位于当前项目的node_modules中)已经过时,因为存在更新的版本(0.2.7).你会看到:

xml2js@0.2.7 node_modules/xml2js current=0.2.6

对于所有依赖项,如果您确信这是可取的:

npm update

或者,要更新单个依赖项,例如xml2js:

npm update xml2js

Node.js相关问答推荐

可以删除一个mongodb catch块

设置默认 node 版本

尽管 tsconfig 中提供了正确的路径,但仍出现找不到模块错误

Promise 和 Azure 语音转文本

如何在套接字对象中存储或添加数据?

NodeJS `request` 库无法通过 multipart-form-data 将文件发布到 dotnet 服务器

为什么这个 module.export 函数如果我直接传递它就不起作用,但如果我将它包装在一个匿名函数中就可以工作

如何在 Docker 容器中 SSO 登录 AWS(使用 aws-sdk v3)

使用 create-expo-app 时如何更改 webpack-config.js 中的哈希函数?

Express.js - 监听请求中止

类 WebSwapCGLLayer 在 Mac OS X /System 和 node_modules 中都实现了

在安装 tensorflow 时遇到问题

解决并行保存到 mongodb

在 Javascript 逻辑中访问 EJS 变量

如何以编程方式检测nodejs中的调试模式?

Nodejs续集批量更新

Puppeteer 记录在 page.evaluate

续集findbyid不是一个函数,但显然findAll是

yarn 和 npm 的主要区别是什么?

Npm postinstall 仅用于开发