Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F79926687
EvalDevToolModulePlugin.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Aug 29, 00:21
Size
2 KB
Mime Type
text/x-c++
Expires
Sat, Aug 31, 00:21 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
20258011
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
EvalDevToolModulePlugin.js
View Options
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict"
;
const
{
ConcatSource
,
RawSource
}
=
require
(
"webpack-sources"
);
const
ModuleFilenameHelpers
=
require
(
"./ModuleFilenameHelpers"
);
const
JavascriptModulesPlugin
=
require
(
"./javascript/JavascriptModulesPlugin"
);
/** @typedef {import("webpack-sources").Source} Source */
/** @typedef {import("./Compiler")} Compiler */
/** @type {WeakMap<Source, Source>} */
const
cache
=
new
WeakMap
();
const
devtoolWarning
=
new
RawSource
(
`
/*
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
* This devtool is not neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
`
);
class
EvalDevToolModulePlugin
{
constructor
(
options
)
{
this
.
namespace
=
options
.
namespace
||
""
;
this
.
sourceUrlComment
=
options
.
sourceUrlComment
||
"\n//# sourceURL=[url]"
;
this
.
moduleFilenameTemplate
=
options
.
moduleFilenameTemplate
||
"webpack://[namespace]/[resourcePath]?[loaders]"
;
}
/**
* Apply the plugin
* @param {Compiler} compiler the compiler instance
* @returns {void}
*/
apply
(
compiler
)
{
compiler
.
hooks
.
compilation
.
tap
(
"EvalDevToolModulePlugin"
,
compilation
=>
{
const
hooks
=
JavascriptModulesPlugin
.
getCompilationHooks
(
compilation
);
hooks
.
renderModuleContent
.
tap
(
"EvalDevToolModulePlugin"
,
(
source
,
module
,
{
runtimeTemplate
,
chunkGraph
})
=>
{
const
cacheEntry
=
cache
.
get
(
source
);
if
(
cacheEntry
!==
undefined
)
return
cacheEntry
;
const
content
=
source
.
source
();
const
str
=
ModuleFilenameHelpers
.
createFilename
(
module
,
{
moduleFilenameTemplate
:
this
.
moduleFilenameTemplate
,
namespace
:
this
.
namespace
},
{
requestShortener
:
runtimeTemplate
.
requestShortener
,
chunkGraph
}
);
const
footer
=
"\n"
+
this
.
sourceUrlComment
.
replace
(
/\[url\]/g
,
encodeURI
(
str
)
.
replace
(
/%2F/g
,
"/"
)
.
replace
(
/%20/g
,
"_"
)
.
replace
(
/%5E/g
,
"^"
)
.
replace
(
/%5C/g
,
"\\"
)
.
replace
(
/^\//
,
""
)
);
const
result
=
new
RawSource
(
`
eval
(
$
{
JSON
.
stringify
(
content
+
footer
)});
`
);
cache
.
set
(
source
,
result
);
return
result
;
}
);
hooks
.
render
.
tap
(
"EvalDevToolModulePlugin"
,
source
=>
new
ConcatSource
(
devtoolWarning
,
source
)
);
hooks
.
chunkHash
.
tap
(
"EvalDevToolModulePlugin"
,
(
chunk
,
hash
)
=>
{
hash
.
update
(
"EvalDevToolModulePlugin"
);
hash
.
update
(
"2"
);
});
});
}
}
module
.
exports
=
EvalDevToolModulePlugin
;
Event Timeline
Log In to Comment