Copy webpack plugin является плагином для инструмента сборки Webpack, который предоставляет возможность копирования файлов и директорий внутри проекта. Он очень полезен, когда необходимо скопировать файлы из одной директории в другую, например, для создания дополнительной структуры в выходном каталоге сборки или для создания копий файлов для разных сред, например, разработки или продакшена.
Но почему copy webpack plugin добавляет **/* в конец пути? Прежде чем ответить на этот вопрос, давайте разберемся с некоторыми концепциями, связанными с копированием файлов в Webpack.
Когда мы говорим о путях в Webpack, мы обычно используем глобальные или относительные пути. Глобальные пути начинаются с корневого каталога файловой системы, в то время как относительные пути указываются относительно текущего рабочего каталога.
Copy webpack plugin использует глобальные пути для указания исходных файлов и целевых путей скопированных файлов. Глобальные пути начинаются с корневого каталога проекта и включают все подкаталоги и их содержимое. Поэтому, когда мы указываем **/*
в конце пути, мы указываем плагину скопировать все файлы и подкаталоги в указанной директории.
Например, если у нас есть следующая конфигурация плагина:
new CopyWebpackPlugin([ { from: 'src/assets', to: 'assets' } ])
Здесь мы говорим плагину скопировать все файлы и подкаталоги внутри src/assets
в каталог assets
в выходной директории сборки. Когда плагин встречает **/*
в конце пути src/assets/**/*
, он сканирует все файлы и подкаталоги внутри src/assets
и копирует их в assets
.
Таким образом, **/*
используется в конфигурации плагина Copy webpack plugin для сканирования и копирования всех файлов и подкаталогов в указанной директории. Это очень удобно, когда вам нужно скопировать большое количество файлов из разных директорий в сборку проекта.