32 lines
733 B
JavaScript
32 lines
733 B
JavaScript
const {stat} = require('fs/promises');
|
|
|
|
const WebpackBeforeBuildPlugin = require('before-build-webpack');
|
|
|
|
class WaitForManifestPlugin extends WebpackBeforeBuildPlugin {
|
|
|
|
constructor(manifest) {
|
|
|
|
super(async (stats, callback) => {
|
|
// eslint-disable-next-line no-constant-condition
|
|
while (true) {
|
|
try {
|
|
// eslint-disable-next-line no-await-in-loop
|
|
await stat(manifest);
|
|
callback();
|
|
break;
|
|
}
|
|
catch (error) {
|
|
// eslint-disable-next-line no-await-in-loop
|
|
await new Promise((resolve) => {
|
|
setTimeout(resolve, 1000);
|
|
});
|
|
}
|
|
}
|
|
}, ['beforeCompile']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = WaitForManifestPlugin;
|