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

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

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

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


当前回答

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

pnpm up

其他回答

当安装npm包(全局或本地)时,你可以通过使用@version语法定义要安装的版本来定义特定的版本。

换句话说,做: NPM install -g karma@0.9.2 将确保只安装0.9.2,如果它已经存在,则不会重新安装。

作为一个建议,我建议尽可能避免全局npm安装。许多人没有意识到,如果一个依赖项定义了一个bin文件,它将被安装到。/node_modules/.bin/。通常,使用package.json中定义的已安装模块的本地版本非常容易。事实上,npm脚本会将。/node_modules/.bin添加到路径中。

作为一个例子,这里有一个包。当我运行npm install && npm test时,将安装我包中定义的karma版本。Json,并在运行测试脚本时使用该版本的karma(安装在node_modules/.bin/karma):

{
 "name": "myApp",
 "main": "app.js",
 "scripts": {
   "test": "karma test/*",
 },
 "dependencies": {...},
 "devDependencies": {
   "karma": "0.9.2"
 }
}

这给了你一揽子的好处。定义karma使用的版本,而不必在CI盒上全局保存该配置。

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升级

在npm@5.0.0+上,你可以简单地做:

npm update <package name>

这将自动更新包。json文件。我们不需要手动更新最新版本,然后使用npm update <包名>

您仍然可以使用旧的行为

npm update --no-save

(参考)

你可以尝试以下两种选择:

检查过时的包裹 npm过时 检查并选择要更新的包 NPX npm-check -u

要真正更新一个包,请安装NCU,然后仅为该包运行它。这将是最新的。

npm install -g npm-check-updates

ncu -f your-intended-package-name -u