From b840240ba1e597842c38f9c0225b2195a82f944a Mon Sep 17 00:00:00 2001 From: Pierre Chalamet Date: Thu, 16 Jan 2025 20:56:57 +0100 Subject: [PATCH] add force --- src/Terrabuild.Extensions/Npm.fs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Terrabuild.Extensions/Npm.fs b/src/Terrabuild.Extensions/Npm.fs index 98492622..6dfeba63 100644 --- a/src/Terrabuild.Extensions/Npm.fs +++ b/src/Terrabuild.Extensions/Npm.fs @@ -12,15 +12,17 @@ type Npm() = /// Default values. /// Default values. static member __defaults__(context: ExtensionContext) = - let projectFile = NpmHelpers.findProjectFile context.Directory - let dependencies = projectFile |> NpmHelpers.findDependencies - let projectInfo = - { ProjectInfo.Default - with Ignores = Set [ "node_modules/" ] - Outputs = Set [ "dist/" ] - Dependencies = dependencies } - projectInfo - + try + let projectFile = NpmHelpers.findProjectFile context.Directory + let dependencies = projectFile |> NpmHelpers.findDependencies + let projectInfo = + { ProjectInfo.Default + with Ignores = Set [ "node_modules/" ] + Outputs = Set [ "dist/" ] + Dependencies = dependencies } + projectInfo + with + exn -> Errors.TerrabuildException.Raise($"Error while processing project {context.Directory}", exn) /// /// Run npm command. @@ -40,8 +42,9 @@ type Npm() = /// /// Install packages using lock file. /// - static member install (context: ActionContext) = - let ops = [ shellOp "npm" "ci" ] + static member install (context: ActionContext) (force: bool option)= + let force = if force = Some true then " --force" else "" + let ops = [ shellOp "npm" $"ci{force}" ] execRequest Cacheability.Always ops