Доступ к compilation.assets после "copy-webpack-plugin" (Webpack) - PullRequest
1 голос
/ 05 мая 2020

Я работаю над настраиваемым плагином 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 };
      }
    );
  }
}
...