fix:binary run node module

This commit is contained in:
duorameng
2026-04-29 21:06:10 +08:00
parent b369a79131
commit d4a93e9bdc
2 changed files with 27 additions and 0 deletions
@@ -9,6 +9,7 @@ import (
"runtime"
"sync"
"time"
"strings"
"unicode/utf8"
"github.com/engigu/baihu-panel/internal/constant"
@@ -379,6 +380,24 @@ func (tc *TerminalController) buildTerminalEnv(userID string, extraEnvs ...strin
env = append(env, envVars...)
}
// 为 Docker 环境或二进制版本注入所有 mise 已安装 Node 的全局依赖路径到 NODE_PATH (Issue-90)
if !utils.IsInDocker() || (!strings.Contains(os.Args[0], "go-build") && !strings.Contains(os.Args[0], "tmp")) {
versions, _ := utils.ListMiseInstalledVersions("node")
var nodePaths []string
for _, v := range versions {
if p := utils.GetMiseNodePath(v); p != "" {
nodePaths = append(nodePaths, p)
}
}
if len(nodePaths) > 0 {
sep := ":"
if runtime.GOOS == "windows" {
sep = ";"
}
env = append(env, "NODE_PATH="+strings.Join(nodePaths, sep))
}
}
return env
}
+8
View File
@@ -75,3 +75,11 @@ func copyDir(src, dest string) error {
return nil
}
// IsInDocker 判断程序是否运行在 Docker 容器中
func IsInDocker() bool {
if _, err := os.Stat("/.dockerenv"); err == nil {
return true
}
return false
}