Skip to content

Hot Reloading ignores __webpack_nonce__ #427

Open
@mgreystone

Description

@mgreystone
  • Operating System: Alpine (Docker)
  • Node Version: 10.16.3
  • NPM Version: 6.9.0
  • webpack Version: 4.37.0
  • style-loader Version: 1.0.0

Expected Behavior

When hot-reloading is enabled, style-loader should add <style> elements with a nonce attribute. The value of the nonce attribute should be the value of __webpack_nonce__.

Actual Behavior

<style> elements do not contain the nonce attribute. Styles are not applied. There is a content-security-policy error in the console, such as the following example.

Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'nonce-mysecret'". Either the 'unsafe-inline' keyword, a hash ('sha256-LpjzYvTh3c/ORkLyxZ1XcnY3NdUH2gFMMdyhKwGAaw8='), or a nonce ('nonce-...') is required to enable inline execution.

Code

I made a repository to demonstrate this issue at
https://github.com/mgreystone/test-style-loader-nonce/tree/45e3402c342036be2a412e4622802497b7c5dfa8

How Do We Reproduce?

Using hot-reload on webpack-dev-server, load a module that both

  1. Sets the value of __webpack_nonce__ = 'secret'
  2. Imports a css module via style-loader
    Use this on a server that responds a CSP header of `Content-Security-Policy: style-src 'nonce-secret'.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions