#load "./.paket/load/net9.0/Build/build.group.fsx" open Fake.Core open Fake.DotNet open Fake.JavaScript System.Environment.GetCommandLineArgs() |> Array.toList |> Context.FakeExecutionContext.Create false "build.fsx" |> Context.RuntimeContext.Fake |> Context.setExecutionContext Target.create "dev" (fun _ -> let fable = async { DotNet.exec (fun o -> o) "fable" "watch -o build -s" |> ignore } let vite = async { Npm.run "dev" (fun p -> p) } Async.Parallel [fable; vite] |> Async.RunSynchronously |> ignore ) Target.create "build" (fun _ -> DotNet.exec (fun o -> o) "fable" "-o build --noCache --optimize" |> ignore Npm.run "build" (fun p -> p) ) Target.create "clean" (fun _ -> DotNet.exec (fun o -> o)"fable" "clean -o build" |> ignore DotNet.exec (fun o -> o) "clean" |> ignore Fake.IO.Directory.delete "node_modules" Fake.IO.Directory.delete "bin" Fake.IO.Directory.delete "build" Fake.IO.Directory.delete "dist" Fake.IO.Directory.delete "obj" Fake.IO.Directory.delete "paket-files" Fake.IO.Directory.delete ".paket" ) Target.runOrDefaultWithArguments "dev"