Parcel.AspNetCore.Middleware 0.1.0

.NET Standard 2.0
NuGet\Install-Package Parcel.AspNetCore.Middleware -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
dotnet add package Parcel.AspNetCore.Middleware --version 0.1.0
<PackageReference Include="Parcel.AspNetCore.Middleware" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Parcel.AspNetCore.Middleware --version 0.1.0
#r "nuget: Parcel.AspNetCore.Middleware, 0.1.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Parcel.AspNetCore.Middleware as a Cake Addin
#addin nuget:?package=Parcel.AspNetCore.Middleware&version=0.1.0

// Install Parcel.AspNetCore.Middleware as a Cake Tool
#tool nuget:?package=Parcel.AspNetCore.Middleware&version=0.1.0

This repository contains a ASP.NET Core middlware for running ParcelJS in your development environment.

Setup

Add the middleware in your Startup.Configure-method.

if (env.IsDevelopment())
{
    services.UseParcelBundler(new ParcelBundlerOptions("Client/index.html"));
}

This will start Parcel in the background with the given file as its entry point. Several entry points can be configured:

services.UseParcelBundler(new ParcelBundlerOptions("Client/js/app.js", "Client/css/app.scss"));

Content will be built to the web-root of ASP.NET Core (see WebHost.UseWebRoot), which by default is wwwroot.

To build to a specific directory in your web-root you can specify the OutDir-option:

services.UseParcelBundler(new ParcelBundlerOptions("Client/index.html")
{
    OutDir = "dist"
})

This configuration will build the content to wwwroot/dist.

The other possible options in ParcelBundlerOptions are the same as those provided by the Parcel Bundler API.

Known issues

Hot Module Reload and HTTPS

HMR does not work out-of-the-box when hosting your application under HTTPS. To make HMR work you will either need to use HTTP in ASP.NET Core or configure the middleware with some trusted certificate using ParcelBundlerOptions.Https.

The reason that HRM does not work is that the HMR-code in Parcel will look at the protocol used by the browser when accessing your application to determine whether to use a secure WebSocket when connecting to Parcel's dev-server. If you application is hosted using HTTPS but Parcel is not, then it will try to connect using the wrong protocol.

This is not an issue which can be fixed in this repository. It is an issue which needs to be fixed in Parcel itself.

Some ideas to make things easier, which I might propose to the maintainers of Parcel:

  1. Add support for PFX-files when configuring HTTPS, to make it possible for this package to configure Parcel to use the same self-signed certificate used by ASP.NET Core.
  2. Make the HMR-code in Parcel rely on the configuration given when starting the server, rather than relying on the protocol used by the browser.
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.0 724 11/8/2018