我有一个cron
,它将服务器上安装的npm package
版本与私有注册表(verdaccio
)上的最新版本进行比较,并相应地更新包。
REMOTE_VERSION=$(npm show ${PACKAGE_NAME} version)
LOCAL_VERSION=$(node -pe "require('./package.json').version")
...
除了命令npm show ${PACKAGE_NAME} version
抛出错误的一台服务器之外,这个cron在我的所有服务器上运行都没有问题:
npm ERR! code ERR_STRING_TOO_LONG
npm ERR! Cannot create a string longer than 0x1fffffe8 characters
我读过here,0x1fffe8正好是512 is,但是该命令的响应仅为4/5个字符(比如"v0.1.50"),所以它能超过这个限制似乎很奇怪。此外,相同的命令(对于相同的包)在本地服务器和所有其他服务器中运行平稳。
这是一些规格。服务器的
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Node v14.17.3
npm v6.14.13
nvm v0.38.0
pm2 v5.1.0
发布于 2022-10-27 18:45:44
升级到node 16.18.0
解决了这个问题。
https://stackoverflow.com/questions/74142215
复制相似问题