From f969c8145cea28635e0383dc9431592c87bec789 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 1 Jun 2026 01:27:42 +0000 Subject: [PATCH] =?UTF-8?q?fix(cmd):=20env=5Fset=20=E5=80=BC=E6=9C=AA?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E6=97=B6=E8=B7=B3=E8=BF=87=E5=86=99=E5=85=A5?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E6=97=A0=E8=B0=93=E9=87=8D=E5=86=99?= =?UTF-8?q?=20.env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit env_set 原先对已存在的键无条件 sed -i 重写 .env,即使新值与当前值相同也会 改变文件 mtime。开发模式下 vite 监听 .env,任何文件事件都会触发整服务重启, 导致前端反复刷新。写入前复用 env_get 比较,值未变化则直接返回。 Co-Authored-By: Claude Opus 4.8 (1M context) --- cmd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmd b/cmd index 7213b6e18..d882e71c0 100755 --- a/cmd +++ b/cmd @@ -394,6 +394,10 @@ env_set() { echo "" >> $WORK_DIR/.env echo "$key=$val" >> $WORK_DIR/.env else + # 值未变化则直接返回,避免无谓重写 .env(重写会改 mtime,触发 vite 全量重启/前端刷新) + if [[ "$(env_get "$key")" == "$val" ]]; then + return 0 + fi if [[ `uname` == 'Linux' ]]; then sed -i "/^${key}=/c\\${key}=${val}" ${WORK_DIR}/.env else