Init
This commit is contained in:
commit
5c6398d480
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/node_modules/
|
51
index.js
Normal file
51
index.js
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
const { glob } = require('glob')
|
||||||
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||||
|
|
||||||
|
class WebpackForceReload {
|
||||||
|
constructor(options = {}) {
|
||||||
|
let that = this;
|
||||||
|
this.options = options;
|
||||||
|
this.resolvedFiles = [];
|
||||||
|
console.debug(this.options);
|
||||||
|
glob.glob(
|
||||||
|
this.options.files,
|
||||||
|
{
|
||||||
|
cwd: this.options.cwd
|
||||||
|
},
|
||||||
|
function(err, matches) {
|
||||||
|
console.debug(matches);
|
||||||
|
_.forEach(matches, function(value) {
|
||||||
|
var resolvedFile = path.resolve(value);
|
||||||
|
that.resolvedFiles.push(resolvedFile);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
console.debug(this.resolvedFiles);
|
||||||
|
}
|
||||||
|
apply (compiler) {
|
||||||
|
compiler.hooks.compilation.tap('WebpackForceReload', (compilation) => {
|
||||||
|
HtmlWebpackPlugin.getHooks(compilation).afterEmit.tapAsync(
|
||||||
|
'WebpackForceReload',
|
||||||
|
(data, cb) => {
|
||||||
|
let forceReload = false;
|
||||||
|
if (compiler.modifiedFiles) {
|
||||||
|
compiler.modifiedFiles.forEach((file) => {
|
||||||
|
if (this.resolvedFiles.includes(file)) {
|
||||||
|
forceReload = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (this.globalDevServer && forceReload) {
|
||||||
|
this.globalDevServer.sendMessage(
|
||||||
|
this.globalDevServer.webSocketServer.clients,
|
||||||
|
"static-changed"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
cb(null, data)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = WebpackForceReload;
|
1619
package-lock.json
generated
Normal file
1619
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
17
package.json
Normal file
17
package.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "webpack-force-reload-plugin",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "AGPL-3.0-or-later",
|
||||||
|
"devDependencies": {
|
||||||
|
"glob": "^10.4.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"html-webpack-plugin": "^5.6.0"
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user