fix:binary run node module
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user