Я использую функцию experimentalCodeSplitting: true
в накопительном пакете 0.61.2, чтобы получить хорошее разделение кода. Поскольку мой проект также состоит из ресурсов, я создал плагин, который соответственно копирует и минимизирует файлы ресурсов. Проблема в том, что используемые мной хуки вызываются для каждого создаваемого чанка. Поэтому активы копируются и минимизируются несколько раз. Единственный обходной путь, который я нашел, состоит в том, чтобы создать какой-либо флаг, который установлен в true
после того, как все сделано правильно. Есть ли функциональность, чтобы вызывать накопительный хук после того, как все (или до всего) закончено, а не на каждом chunk
? Теперь мой плагин выглядит примерно так: (я удалил некоторые части и упростил для удобства чтения):
export default function copy(userOptions = {}) {
const name = 'copyAndMinify';
const files = userOptions.files || [];
let isCopyDone = false;
return {
name: name,
// also tried onwrite, ongenerate, buildEnd and generateBundle
buildStart() {
if (isCopyDone) {
return;
}
for (let key in files) {
const src = key;
const dest = files[key];
try {
minifyFile(src, dest);
} catch (err) {
fatal(name, src, dest, err);
}
}
isCopyDone = true;
}
};
};
Может быть, есть лучший способ сделать такие вещи, потому что в этой реализации мне всегда нужно полностью перезапускать накопительный пакет, чтобы запустить мой плагин