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

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

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

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


当前回答

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

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过时 检查并选择要更新的包 NPX npm-check -u

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

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

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

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

pnpm up

3个简单的步骤,您可以使用更新所有过期的包

首先,检查过期的包

Sudo NPM I -g NPM check-updates

第二,把它们都准备好

NCU -u

终端中的结果如下所示:

第三,更新所有这些。

npm安装

就是这样。

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

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

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

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

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