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

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

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

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


当前回答

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

pnpm up

其他回答

更新一个本地包: 首先通过以下方法找出过时的软件包: npm过时 然后手动更新你想要的包: 保存<package_name>

这样就不需要更新本地的package.json 手动文件。

注意,上面的命令将把包更新到最新版本。

如果您在软件包中编写了某个版本。Json文件,并执行: NPM更新<package_name> 在这种情况下,您将获得与您在包中编写的版本相关的下一个稳定版本。json文件。

使用npm list <package_name>你可以找到你的本地包的当前版本。

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安装新版本的包

另一种方法是首先升级一揽子计划。Json文件使用,

ncu -u

然后简单地运行,

npm install

将所有包更新到最新版本。 ps:它会将所有的包更新到最新版本,但是如果包已经是最新的,那么包将完全不受影响。

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

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

bash还有一个:

npm outdated -parseable|cut -d: -f5|xargs -L1 npm i