我们需要将Karma测试运行器集成到TeamCity中,为此我想给系统工程师一个小脚本(powershell或其他东西):

从一些配置文件中获取所需的版本号(我想我可以把它作为一个注释放在karma.conf.js中) 检查karma runner的定义版本是否安装在npm的全局repo中 如果不是,或者安装的版本比期望的旧:选择并安装正确的版本 \Scripts-Tests\karma.conf.js——reporteteamcity——单次运行

所以我真正的问题是:“如果安装了所需版本的包,如何检入脚本?”你应该做检查,还是每次都调用npm -g install更安全?

我不想总是检查和安装最新的可用版本,因为其他配置值可能变得不兼容


当前回答

如果您有多个具有相同节点模块内容的项目,建议使用pnpm。这将防止在每个项目中下载模块。安装后,你的问题的答案是:

pnpm up

其他回答

你可以在2022年完全自动做到这一点

安装npm-check-updates 执行命令 Ncu——医生-u 它将首先尝试您拥有的每个依赖项并运行测试,如果测试失败,它将逐个更新每个依赖项,并在每次更新后运行测试

还有一个名为npm-check的“fresh”模块:

npm-check 检查过时的、不正确的和未使用的依赖项。

它还提供了一种方便的交互式方式来使用npm-check -u更新依赖关系。

检查项目中是否有模块是“旧的”:

npm outdated

' expired '将检查package中定义的每个模块。查看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

更新包。Json版本号,添加——save标志:

npm update --save

NPM expired将识别应该更新的包,NPM update <包名>可以用来更新每个包。但是在npm@5.0.0之前,npm update <包名>将不会更新包中的版本。Json是一个问题。

最佳的工作流程是:

用npm obsolete标识过期的包 更新package.json中的版本 运行npm update来安装每个包的最新版本

查看npm-check-updates来帮助完成这个工作流。

使用npm i npm-check-updates -g安装npm-check-updates 运行npm-check-updates来列出过期的包(基本上和运行npm outdated是一样的) 运行npm-check-updates -u更新包中的所有版本。Json(这是神奇的酱汁) 像往常一样运行npm update,根据更新后的package.json安装新版本的包

NPM命令更新或修复某些依赖清单文件中的漏洞

Use below command to check outdated or vulnerabilities in your node modules. npm audit If any vulnerabilities found, use below command to fix all issues. npm audit fix If it doesn't work for you then try npm audit fix -f, this command will almost fix all vulnerabilities. Some dependencies or devDependencies are locked in package-lock.json file, so we use -f flag to force update them. If you don't want to use force audit fix then you can manually fix your dependencies versions by changing them in package-lock.json and package.json file. Then run

NPM更新&& NPM升级