add NonceRuntimeModule
This commit is contained in:
parent
3ad4fcac25
commit
ce56e3b61c
|
@ -26,6 +26,7 @@ const GlobalRuntimeModule = require("./runtime/GlobalRuntimeModule");
|
|||
const HasOwnPropertyRuntimeModule = require("./runtime/HasOwnPropertyRuntimeModule");
|
||||
const LoadScriptRuntimeModule = require("./runtime/LoadScriptRuntimeModule");
|
||||
const MakeNamespaceObjectRuntimeModule = require("./runtime/MakeNamespaceObjectRuntimeModule");
|
||||
const NonceRuntimeModule = require("./runtime/NonceRuntimeModule");
|
||||
const OnChunksLoadedRuntimeModule = require("./runtime/OnChunksLoadedRuntimeModule");
|
||||
const PublicPathRuntimeModule = require("./runtime/PublicPathRuntimeModule");
|
||||
const RelativeUrlRuntimeModule = require("./runtime/RelativeUrlRuntimeModule");
|
||||
|
@ -431,6 +432,12 @@ class RuntimePlugin {
|
|||
return true;
|
||||
}
|
||||
});
|
||||
compilation.hooks.runtimeRequirementInTree
|
||||
.for(RuntimeGlobals.scriptNonce)
|
||||
.tap("RuntimePlugin", chunk => {
|
||||
compilation.addRuntimeModule(chunk, new NonceRuntimeModule());
|
||||
return true;
|
||||
});
|
||||
// TODO webpack 6: remove CompatRuntimeModule
|
||||
compilation.hooks.additionalTreeRuntimeRequirements.tap(
|
||||
"RuntimePlugin",
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Ivan Kopeykin @vankop
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
const RuntimeGlobals = require("../RuntimeGlobals");
|
||||
const RuntimeModule = require("../RuntimeModule");
|
||||
|
||||
class NonceRuntimeModule extends RuntimeModule {
|
||||
constructor() {
|
||||
super("nonce", RuntimeModule.STAGE_ATTACH);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string} runtime code
|
||||
*/
|
||||
generate() {
|
||||
return `${RuntimeGlobals.scriptNonce} = undefined;`;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = NonceRuntimeModule;
|
|
@ -0,0 +1,5 @@
|
|||
import "./nonce";
|
||||
|
||||
it("should set nonce", () => {
|
||||
expect(__webpack_nonce__).toBe("nonce");
|
||||
});
|
|
@ -0,0 +1 @@
|
|||
__webpack_nonce__ = "nonce";
|
|
@ -0,0 +1,7 @@
|
|||
const webpack = require("../../../../");
|
||||
/** @type {import("../../../../").Configuration} */
|
||||
module.exports = {
|
||||
target: "web",
|
||||
// plugin that intercepts __webpack_require__
|
||||
plugins: [new webpack.HotModuleReplacementPlugin()]
|
||||
};
|
Loading…
Reference in New Issue