diff --git a/core/providers/node/node.go b/core/providers/node/node.go index 412a5f9..9c5f066 100644 --- a/core/providers/node/node.go +++ b/core/providers/node/node.go @@ -126,16 +126,19 @@ func (p *NodeProvider) Packages(ctx *generate.GenerateContext, packageJson *Pack packages := ctx.GetMiseStepBuilder() // Node - node := packages.Default("node", DEFAULT_NODE_VERSION) + if packageManager.requiresNode(packageJson) { + node := packages.Default("node", DEFAULT_NODE_VERSION) - if envVersion, varName := ctx.Env.GetConfigVariable("NODE_VERSION"); envVersion != "" { - packages.Version(node, envVersion, varName) - } + if envVersion, varName := ctx.Env.GetConfigVariable("NODE_VERSION"); envVersion != "" { + packages.Version(node, envVersion, varName) + } - if packageJson.Engines != nil && packageJson.Engines["node"] != "" { - packages.Version(node, packageJson.Engines["node"], "package.json > engines > node") + if packageJson.Engines != nil && packageJson.Engines["node"] != "" { + packages.Version(node, packageJson.Engines["node"], "package.json > engines > node") + } } + // Bun if packageManager == PackageManagerBun { bun := packages.Default("bun", DEFAULT_BUN_VERSION) diff --git a/core/providers/node/package_manager.go b/core/providers/node/package_manager.go index 07c322b..e7d558f 100644 --- a/core/providers/node/package_manager.go +++ b/core/providers/node/package_manager.go @@ -171,3 +171,19 @@ func (p PackageManager) GetPackageManagerPackages(ctx *generate.GenerateContext, packages.Default("yarn", "2") } } + +func (p PackageManager) requiresNode(packageJson *PackageJson) bool { + if p != PackageManagerBun || packageJson == nil { + return true + } + + scripts := packageJson.Scripts + + for _, script := range scripts { + if strings.Contains(script, "node") { + return true + } + } + + return false +}