I had an issue opened on my Identity Server GitHub repo saying that publishing the client application fails with something like the following error when using server-side rendering.
Can’t resolve ‘./../$$_gendir/ClientApp/app/app.module.browser.ngfactory’
This was only an issue after moving the project to target Angular 5. After some research, it turns out that Angular tools for Webpack has to use a different plugin for ahead of time compiling for Angular 5+. I ended up finding a fix in this issue.
The Fix
In order to resolve the issue, I made the following changes in the webpack.config.js file. The first change is in the require statements at the top of the file.
Before: const AotPlugin = require('@ngtools/webpack').AotPlugin; After: const AngularCompilerPlugin = require('@ngtools/webpack').AngularCompilerPlugin;
Next, make the following replacement in the rest of the file, which should only be two places.
Before: new AotPlugin After: new AngularCompilerPlugin
Wrapping Up
Most of the projects I reference on this blog are written to specifically target the topic I am trying to cover and as such I miss things like testing publish since I’m never going to production with these applications. I really appreciate those of you who find issues and take the time to open an issue on GitHub. Keep them coming, and if you find a solution before I do feel free to submit a pull request.
Also published on Medium.