mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2025-12-22 09:37:45 +00:00
ASP.NET Core Webpack Middleware Can Break with a Webpack 2 Build Pipeline #1413
Closed
opened 2025-08-09 17:20:03 +00:00 by fergalmoran
·
0 comments
No Branch/Tag Specified
master
rybrande/masterToSrc
pakrym/no-console-fb
release/2.2
pakrym/remove-obsole-api-usage
maestro/release/2.2
maestro/master
release/2.1
release/2.0
rybrande/MergeRelease21IntoDev
rel/2.0.0-extensions
angular-animations-example
fix-angular-material-publishing
rel/2.0.0-templates
httpwithstatetransfer-example
rel/2.0.0-preview2-templates
aspnet-webpack-react-2.x
angular4-prerender-data-example
version-1.x
angular2-lazy-loading-example
581-isomorphic-react-cookies-example
example-using-typescript-paths-for-494
v1.0.x
angular2-materialize-example
redux-typed-1-x
primeng-example
font-awesome-example
karma-testing-example
2.2.0
2.2.0-preview3
2.2.0-preview2
2.2.0-preview1
2.1.1
2.1.0
2.0.4
2.1.0-rc1-final
2.1.0-preview2-final
2.0.3
2.1.0-preview1-final
2.0.2
2.0.1
rel/2.0.0
rel/2.0.0-preview2
Labels
Clear labels
2 - Working
2 - Working
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
angular
angular
angular
angular
angular
bug
bug
bug
bug
bug
bug
bug
bug
bug
core
core
core
core
core
core
core
duplicate
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
external
external
P1
P1
P1
P1
P1
P1
P2
P2
P2
P2
P2
P2
P2
P2
P2
PRI: 1 - Required
react
react
task
task
up-for-grabs
up-for-grabs
up-for-grabs
waiting
waiting
waiting
waiting
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
fergalmoran
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github/JavaScriptServices#1413
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @thoughtentity on 8/27/2016
ASP.NET Core Webpack Middleware Can Break with Webpack 2 Build Pipeline
Problem
When the ASP.NET Core Webpack middleware attempts to build a Webpack 2 build pipeline that uses the
extract-text-webpack-pluginthe Webpack build will fail with the error message:The
extract-text-webpack-pluginis commonly used when configuring Webpack to bundle arbitrary text inputs such css stylesheets. For example, the config-css Webpack config preset from @easy-webpack brings in this plugin when it applies it's config transform. This is also happens to be how I encountered the issue myself.Reproduction
The following minimum
package.jsonandwebpack.config.jsfiles will cause the issue in the ASP.NET Core Webpack middleware when bundlingmain.jsandsite.css. The Webpack config file expects amain.jsfile in/Client/scriptsand asite.cssfile in/Client/styles. Webpack will emitapp.bundle.jsandstyles.cssin/wwwroot/dist. The files will need to be referenced in the view files of an ASP.NET Core app bootstraped with the ASP.NET Core Webpack middleware.Root Cause
The issue occurs due to incompatibilities introduced between Webpack 1 and Webpack 2. Because the
aspnet-webpacknpm package introduces a hard dev dependency on Webpack 1 in itspackage.jsonfile, node will give theaspnet-webpackmodule an isolated copy of Webpack 1 at runtime. When the ASP.NET Core Webpack middleware then attempts to run a Webpack 2 build pipleine thewebpack-dev-middlewareinaspnet-webpackwill fail due to it using the Webpack 1 dependency to build a Webpack 2 build pipeline and the issue will occur. The Webpack 1 and Webpack 2 incompatibility issues are discussed in the extract-text-webpack-plugin repo and the main webpack repo.Proposed Resolution
To resolve this issue on the ASP.NET Core side, the
aspnet-webpacknpm package should specify its webpack dependency as a peer dependency rather than as a dev dependency. This will make the dependency soft and allow thewebpack-dev-middlewareto pickup the version of Webpack actually being used by the user further up the node dependency chain.