Parcel.AspNetCore.Middleware 0.1.0

dotnet add package Parcel.AspNetCore.Middleware --version 0.1.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.
<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 and Polyglot Notebooks. 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 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 netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
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 921 11/8/2018