VueCliMiddleware 3.0.0
See the version list below for details.
dotnet add package VueCliMiddleware --version 3.0.0
NuGet\Install-Package VueCliMiddleware -Version 3.0.0
<PackageReference Include="VueCliMiddleware" Version="3.0.0" />
paket add VueCliMiddleware --version 3.0.0
#r "nuget: VueCliMiddleware, 3.0.0"
// Install VueCliMiddleware as a Cake Addin #addin nuget:?package=VueCliMiddleware&version=3.0.0 // Install VueCliMiddleware as a Cake Tool #tool nuget:?package=VueCliMiddleware&version=3.0.0
VueCliMiddleware - Supporting Vue Cli and Quasar Cli
This is a stand-alone module to add Vue Cli and Quasar Cli support to AspNet Core.
ASP.NET 3.0 Preview Endpoint Routing (experimental)
First, be sure to switch Vue Cli or Quasar Cli to output distribution files to wwwroot directly (not dist).
- Quasar CLI: regex: "Compiled successfully"
- Vue CLI: regex: default or "running at"
See Migrating Asp.Net 2.2 to 3.0 Endpoint Routing
// To use with EndpointRouting
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
// initialize vue cli middleware
#if DEBUG
if (System.Diagnostics.Debugger.IsAttached)
endpoints.MapToVueCliProxy("{*path}", new SpaOptions { SourcePath = "ClientApp" }, "dev", regex: "Compiled successfully");
else
#endif
// note: output of vue cli or quasar cli should be wwwroot
endpoints.MapFallbackToFile("index.html");
});
ASP.NET 2.2 Usage Example
using VueCliMiddleware;
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public virtual void ConfigureServices(IServiceCollection services)
{
services.AddMvc(); // etc
// Need to register ISpaStaticFileProvider for UseSpaStaticFiles middleware to work
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
}
public virtual void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// your config opts...
// optional basepath
// app.UsePathBase("/myapp");
// add static files from SPA (/dist)
app.UseSpaStaticFiles();
app.UseMvc(routes => /* configure*/ );
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
#if DEBUG
if (env.IsDevelopment())
{
spa.UseVueCli(npmScript: "serve", port: 8080); // optional port
}
#endif
});
}
}
CSPROJ Configuration
You may also need to add the following tasks to your csproj file. This are similar to what are found in the default ASPNETSPA templates.
<PropertyGroup>
<SpaRoot>ClientApp\</SpaRoot>
<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
</PropertyGroup>
<Target Name="DebugEnsureNodeEnv" BeforeTargets="Build">
<Exec Command="node --version" ContinueOnError="true">
<Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
</Exec>
<Error Condition="'$(ErrorCode)' != '0'" Text="Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE." />
</Target>
<Target Name="DebugEnsureNpm" AfterTargets="DebugEnsureNodeEnv">
<Exec Command="npm --version" ContinueOnError="true">
<Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
</Exec>
</Target>
<Target Name="EnsureNodeModulesInstalled" BeforeTargets="Build" Inputs="package.json" Outputs="packages-lock.json">
<Message Importance="high" Text="Restoring dependencies using 'npm'. This may take several minutes..." />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
</Target>
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
<Message Importance="high" Text="Running npm build..." />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build" />
<ItemGroup>
<DistFiles Include="$(SpaRoot)dist\**" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.Identity)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
History
Due to the discussion here, it was decided to not be included in the Microsoft owned package.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
-
.NETCoreApp 3.0
- Microsoft.AspNetCore.SpaServices.Extensions (>= 3.0.0)
- Microsoft.Extensions.Logging (>= 3.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on VueCliMiddleware:
Package | Downloads |
---|---|
WalkingTec.Mvvm.Mvc
WalkingTec.Mvvm |
|
RapidFire.Core
Rapid Fire For WEB with .NET 6! |
GitHub repositories (6)
Showing the top 5 popular GitHub repositories that depend on VueCliMiddleware:
Repository | Stars |
---|---|
dotnetcore/WTM
Use WTM to write .netcore app fast !!!
|
|
rnwood/smtp4dev
smtp4dev - the fake smtp email server for development and testing
|
|
ErsatzTV/ErsatzTV
Stream custom live channels using your own media
|
|
iioter/iotgateway
A cross-platform IoT gateway based on .net6. Through visual configuration, you can easily connect to any of your devices and systems (such as PLC, barcode scanner, CNC, database, serial device, host computer, OPC Server, OPC UA Server, Mqtt Server, etc.), so as to interact with Thingsboard, IoTSharp or Your own IoT platform for two-way data communication. Provide a simple driver development interface; of course, edge computing can also be performed.
|
|
ConcreteMC/Alex
A Minecraft client written in C# aimed at compatibility with MC:Java & MC:Bedrock
|