Я работаю над настраиваемым плагином Webpack, который будет создавать файлы манифеста, перечисляющие все ресурсы веб-игры (с целью их предварительной загрузки).
Я могу получить список активов (compilation.assets
), когда подключаюсь к "emit", но мои активы отсутствуют в этом списке. Это stati c и они копируются через "copy-webpack-plugin", поэтому я предполагаю, что они отсутствуют, потому что он еще не запущен.
Я могу подключиться к "afterEmit" и получить все ресурсы , включая те, которые мне нужны, но фаза создания уже завершена, и я не могу отправить файл манифеста. ?
Может ли кто-нибудь пролить свет на то, что мне не хватает?
class CreateAssetPathsTextFiles
{
apply(compiler)
{
compiler.hooks.emit.tapPromise(
'CreateAssetPathsTextFiles',
async ( compilation ) =>
{
const jsonData = { paths:[] }
for ( const filepath in compilation.assets )
{
/// ... these are before "copy-webpack-plugin" did its work
}
const json = JSON.stringify( jsonData, null, 2 );
compilation.assets['filelist.json'] = { source: () => json, size: () => json.length };
}
);
}
}