-
Notifications
You must be signed in to change notification settings - Fork 12k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lazy loaded styles are still hashed #11704
Comments
Looks like the problem is with optimization flag. When enabled the chunk id changes to a numeric value and the plugin cannot find chunkId in this.options.chunkIds. I am going to disable optimization until there is a proper fix. I did find the following handles both states of optimization flag: const chunkId = data.chunk && data.chunk.id;
const chunkName = data.chunk && data.chunk.name;
if ((chunkId || chunkName) && (this.options.chunkIds.includes(chunkId) || this.options.chunkIds.includes(chunkName))) {
// Replace hash formats with empty strings.
return path
.replace(this.options.hashFormat.chunk, '')
.replace(this.options.hashFormat.extract, '');
}
return path;
|
I also opened similar issue |
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Bug Report or Feature Request (mark with an
x
)Command (mark with an
x
)Versions
$ node --version
v8.9.0
$ npm --version
6.0.1
Angular CLI: 6.1.1
Node: 8.9.0
OS: win32 x64
Angular: 6.1.0
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
@angular-devkit/architect 0.7.1
@angular-devkit/build-angular 0.7.1
@angular-devkit/build-optimizer 0.7.1
@angular-devkit/build-webpack 0.7.1
@angular-devkit/core 0.7.1
@angular-devkit/schematics 0.7.1
@angular/cli 6.1.1
@ngtools/webpack 6.1.1
@schematics/angular 0.7.1
@schematics/update 0.7.1
rxjs 6.2.2
typescript 2.7.2
webpack 4.9.2
Repro steps
"styles": [{"input": "src/styles.scss", "lazy":true} ],
)The log given by the failure
None.
Desired functionality
Based on the pull request (#11491) the hashing should be disabled for lazy loaded styles. Therefore a
styles.css
is expected in the dist folder (instead astyles.<hash>.css
is included).This should have been fixed with issue #11235 / pull request #11491.
Mention any other details that might be useful
It seems that the problem is caused by passing the name (e.g. "styles") in styles.ts#getStylesConfig instead of the ID (which isn't even present at the time):
angular-cli/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/styles.ts
Line 191 in 3529096
angular-cli/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/styles.ts
Line 200 in 3529096
Later, in the RemoveHashPlugin#apply the name is then compared to the actual ID:
angular-cli/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/remove-hash-plugin.ts
Line 29 in 3529096
angular-cli/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/remove-hash-plugin.ts
Line 31 in 3529096
Changing remove-hash-plugin.ts#L29 to use
data.chunk.name
instead ofdata.chunk.id
resolved the issue in our tests.The text was updated successfully, but these errors were encountered: