Skip to content
This repository was archived by the owner on Apr 8, 2020. It is now read-only.

Conversation

@PhotoAtomic
Copy link

WebpackDevMiddleware doesn't allow to add heades to the generated response while using HMR. In certain scenario (using workbox for PWA) it is necessary to add headers to the returned swerviceworker file to broad the scope of the service worker and keep the solution clean.
While this is possible in production mode using the StaticFileMiddleware, this is not possible in development because of the "proxied" way the WebpackDevMiddleware works.
To keep consistency with the static file middleware which provide a OnPrepareResponse extension point i've implemented a similar mechanism for the webpack dev middleware which could be usefull also in other scenario, not only for my particular workbox integration needs.

In my scenario it can be used this way:

app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions { HotModuleReplacement = true, OnPrepareResponse = (c)=> { c.Response.HttpContext.Response.Headers["Service-Worker-Allowed"] = "/"; } });

if no OnPrepareResponse option is provided, everything work as usual

Implementation Question:
i've implemented in the simplest way but i've noticed that the class WebpackDevMiddlewareOptions is at one point serialized in devServerOptions (Webpack\WebpackDevMiddleware.cs+92) and passed to the createWebpackDevServer trough the node script using the node service.

Because this OnPrepareResponse action cannot be useful in the node's script context i've added the attribute [JsonIgnore] but i have the doubt that passing additional configuration option in the WebpackDevMiddlewareOptions is not the intended way to use it, even if it s very handy to have it in this way. Please let me know if this WebpackDevMiddlewareOptions class must remain pure with only the argument that have to be passed to node, or if it ok to have all the config option here and maybe using JsonIgnore or copy only the relevant part when passing it as argument to node.

Thanks,
Mosè

@dnfclas
Copy link

dnfclas commented Oct 18, 2018

CLA assistant check
All CLA requirements met.

@Eilon
Copy link
Contributor

Eilon commented Jan 2, 2019

Hi, this pull request is being closed because this repo is archived and all the source code and issues have been moved to the https://github.com/aspnet/AspNetCore repository. If you would like to send a new PR, you can find the new location for the source code here: https://github.com/aspnet/AspNetCore/tree/master/src/Middleware/NodeServices

Thanks,
Eilon

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

4 participants