From f6efa149ee219a92065435a4a2ed240ab84162da Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 3 Jun 2020 18:58:03 +0800 Subject: Fix #87 . --- Timeline.Tests/Helpers/TestApplication.cs | 2 ++ Timeline/ClientApp/package.json | 1 + Timeline/Configs/ApplicationConfiguration.cs | 7 +++++ Timeline/Startup.cs | 39 ++++++++++++++++++---------- Timeline/Timeline.csproj | 14 ---------- 5 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 Timeline/Configs/ApplicationConfiguration.cs diff --git a/Timeline.Tests/Helpers/TestApplication.cs b/Timeline.Tests/Helpers/TestApplication.cs index 11fe8f87..6e0a4ca6 100644 --- a/Timeline.Tests/Helpers/TestApplication.cs +++ b/Timeline.Tests/Helpers/TestApplication.cs @@ -6,6 +6,7 @@ using Microsoft.Extensions.DependencyInjection; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; +using Timeline.Configs; using Timeline.Entities; using Timeline.Migrations; using Xunit; @@ -53,6 +54,7 @@ namespace Timeline.Tests.Helpers { config.AddInMemoryCollection(new Dictionary { + [ApplicationConfiguration.DisableFrontEndKey] = "true", ["WorkDir"] = WorkDir }); }); diff --git a/Timeline/ClientApp/package.json b/Timeline/ClientApp/package.json index a84267e8..d7e0b2eb 100644 --- a/Timeline/ClientApp/package.json +++ b/Timeline/ClientApp/package.json @@ -29,6 +29,7 @@ "scripts": { "start": "webpack-dev-server --config ./webpack.config.dev.js", "build": "webpack --config ./webpack.config.prod.js", + "install-and-start": "yarn && webpack-dev-server --config ./webpack.config.dev.js", "lint": "eslint src/ --ext .js --ext .jsx --ext .ts --ext .tsx" }, "browserslist": { diff --git a/Timeline/Configs/ApplicationConfiguration.cs b/Timeline/Configs/ApplicationConfiguration.cs new file mode 100644 index 00000000..1fb4cf35 --- /dev/null +++ b/Timeline/Configs/ApplicationConfiguration.cs @@ -0,0 +1,7 @@ +namespace Timeline.Configs +{ + public static class ApplicationConfiguration + { + public const string DisableFrontEndKey = "DisableFrontEnd"; + } +} diff --git a/Timeline/Startup.cs b/Timeline/Startup.cs index afcb97ac..77b48466 100644 --- a/Timeline/Startup.cs +++ b/Timeline/Startup.cs @@ -24,10 +24,14 @@ namespace Timeline [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1822:Mark members as static")] public class Startup { + private readonly bool disableFrontEnd; + public Startup(IConfiguration configuration, IWebHostEnvironment environment) { Environment = environment; Configuration = configuration; + + disableFrontEnd = Configuration.GetValue(ApplicationConfiguration.DisableFrontEndKey) ?? false; } public IWebHostEnvironment Environment { get; } @@ -87,10 +91,13 @@ namespace Timeline options.UseSqlite($"Data Source={pathProvider.GetDatabaseFilePath()}"); }); - services.AddSpaStaticFiles(config => + if (!disableFrontEnd) { - config.RootPath = "ClientApp/dist"; - }); + services.AddSpaStaticFiles(config => + { + config.RootPath = "ClientApp/dist"; + }); + } } @@ -114,10 +121,13 @@ namespace Timeline app.UseRouting(); - app.UseSpaStaticFiles(new StaticFileOptions + if (!disableFrontEnd) { - ServeUnknownFileTypes = true - }); + app.UseSpaStaticFiles(new StaticFileOptions + { + ServeUnknownFileTypes = true + }); + } app.UseAuthentication(); app.UseAuthorization(); @@ -127,15 +137,18 @@ namespace Timeline endpoints.MapControllers(); }); - app.UseSpa(spa => + if (!disableFrontEnd) { - spa.Options.SourcePath = "ClientApp"; - - if (Environment.IsDevelopment()) + app.UseSpa(spa => { - SpaServices.SpaDevelopmentServerMiddlewareExtensions.UseSpaDevelopmentServer(spa, packageManager: "yarn", npmScript: "start", port: 3000); - } - }); + spa.Options.SourcePath = "ClientApp"; + + if (Environment.IsDevelopment()) + { + SpaServices.SpaDevelopmentServerMiddlewareExtensions.UseSpaDevelopmentServer(spa, packageManager: "yarn", npmScript: "install-and-start", port: 3000); + } + }); + } } } } diff --git a/Timeline/Timeline.csproj b/Timeline/Timeline.csproj index 8231cfa8..f918b2d6 100644 --- a/Timeline/Timeline.csproj +++ b/Timeline/Timeline.csproj @@ -52,20 +52,6 @@ - - - - - - - - - - - - - - -- cgit v1.2.3