diff --git a/core/task/handler/runner.go b/core/task/handler/runner.go index 80b7d33c..bfe3d0f6 100644 --- a/core/task/handler/runner.go +++ b/core/task/handler/runner.go @@ -364,6 +364,12 @@ func (r *Runner) configureNodePath() { _ = os.Setenv("PATH", nodePath+":"+envPath) } _ = os.Setenv("NODE_PATH", nodePath) + + // Configure global node_bin path + nodeBinPath := utils.GetNodeBinPath() + if !strings.Contains(envPath, nodeBinPath) { + _ = os.Setenv("PATH", nodeBinPath+":"+envPath) + } } func (r *Runner) configureGoPath() { diff --git a/core/utils/config.go b/core/utils/config.go index a2f43b45..e1c57911 100644 --- a/core/utils/config.go +++ b/core/utils/config.go @@ -2,12 +2,13 @@ package utils import ( "fmt" - "github.com/gin-gonic/gin" - "github.com/mitchellh/go-homedir" - "github.com/spf13/viper" "os" "path/filepath" "strings" + + "github.com/gin-gonic/gin" + "github.com/mitchellh/go-homedir" + "github.com/spf13/viper" ) const ( @@ -34,6 +35,7 @@ const ( MetadataConfigName = "config.json" DefaultPyenvPath = "/root/.pyenv" DefaultNodeModulesPath = "/usr/lib/node_modules" + DefaultNodeBinPath = "/usr/lib/node_bin" DefaultGoPath = "/root/go" DefaultMCPServerHost = "0.0.0.0" DefaultMCPServerPort = 9777 @@ -283,6 +285,13 @@ func GetNodeModulesPath() string { return DefaultNodeModulesPath } +func GetNodeBinPath() string { + if res := viper.GetString("install.node.bin"); res != "" { + return res + } + return DefaultNodeBinPath +} + func GetGoPath() string { if res := viper.GetString("install.go.path"); res != "" { return res