gpt4 book ai didi

javascript - Yarn Install - 如何强制使用最新的次要版本和 Node 补丁 (10.x.x)

转载 作者:行者123 更新时间:2023-12-01 17:14:00 25 4
gpt4 key购买 nike

我有一个在 Node 10 上测试的 Node 应用程序。我使用 yarn 作为依赖项管理器。由于我的应用程序测试是在 CI 上使用最新版本的 Node 10 运行的,因此我想确保所有开发人员在运行任何 yarn 命令时都安装了最新的 10.x.x 版本。

例如,假设当前最新的 Node 版本是 10.22.1,那么如果开发人员在 10.22.0 或 10.11.1 上,我想停止 yarn 安装。

使用 the engine package.json 中的指令我尝试了以下语法但无济于事。

{
"engines": {
"node": "^10.x.x",
}
}
{
"engines": {
"node": "^10",
}
}
{
"engines": {
"node": ">10.0.0 <11.0.0",
}
}
{
"engines": {
"node": "10",
}
}

所有这些都允许任何主要版本为 10 的 Node 。

最佳答案

根据 yarn 文档 ( https://classic.yarnpkg.com/en/docs/package-json/ ),preinstall 在安装包之前被调用。

If defined, the preinstall script is called by yarn before your package is installed.

所以我会在你的 package.json 中使用类似这样的东西:

"scripts": {
....
"preinstall": "./scripts/preinstall.sh",

}

您的 preinstall.sh 可能是:

#!/bin/bash
currentver="$(node -v)"
requiredver="v10.0.0"

if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" = "$requiredver" ]; then
echo "Version is good so let's go with install"
else
echo "Please install the node version greater than v10.0.0"
exit -1
fi

因此,如果您的开发人员的版本低于 v10.0.0,则上述脚本将失败,进而导致 yarn install 命令失败。

注:归功于https://unix.stackexchange.com/questions/285924/how-to-compare-a-programs-version-in-a-shell-script用于版本比较的 shell 脚本。

关于javascript - Yarn Install - 如何强制使用最新的次要版本和 Node 补丁 (10.x.x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63739597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com