fix:binary run node module
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
"strings"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/engigu/baihu-panel/internal/constant"
|
"github.com/engigu/baihu-panel/internal/constant"
|
||||||
@@ -379,6 +380,24 @@ func (tc *TerminalController) buildTerminalEnv(userID string, extraEnvs ...strin
|
|||||||
env = append(env, envVars...)
|
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
|
return env
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,3 +75,11 @@ func copyDir(src, dest string) error {
|
|||||||
|
|
||||||
return nil
|
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