Примечание
Этот модуль является частью ansible-base
и включен во все установки Ansible. В большинстве случаев вы можете использовать краткую копию имени модуля даже без указания ключевого слова collections:
. Несмотря на это, мы рекомендуем вам использовать FQCN для упрощения ссылки на запланированную документацию и во избежание конфликта с другими коллекциями с одинаковым именем модуля.
¶
-
Модуль
copy
копирует файл с локального или удаленного компьютера в место на удаленном компьютере. -
Используйте модуль для копирования файлов из удаленных мест в локальный ящик.
-
Если вам нужна интерполяция переменных в скопированных файлах, воспользуйтесь модулем. Использование переменной в поле
content
приведет к непредсказуемому результату. -
Для целей Windows используйте вместо этого модуль.
Примечание
У этого модуля есть соответствующий.
¶
r>
Параметр | Варианты/ Значения по умолчанию | Комментарии |
---|---|---|
атрибуты
строка
добавлена в 2.3 в ansible.builtin
|
Атрибуты итоговый файл или каталог должны иметь.
Чтобы получить поддерживаемые флаги, посмотрите страницу руководства для chattr в целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и строка, отображаемая lsattr .
Оператор
= предполагается как по умолчанию, в противном случае в строку должны быть включены операторы + или - .
aliases: attr
|
|
backup
boolean
добавлено в 0.7 из ansible.builtin
|
|
Создайте файл резервной копии, включая информацию о временной метке, чтобы вы могли вернуть исходный файл, если вы каким-то образом его неправильно затерли.
|
контрольная сумма
строка
добавлена в 2.5 в ansible.builtin
|
Контрольная сумма SHA1 передаваемого файла.
Используется для проверки успешности копирования файла.
Если это не указано, ansible будет использовать вычисляемая локальная контрольная сумма файла src.
|
|
content
строка
добавлена в 1.1 в ansible.builtin
|
При использовании вместо
src устанавливает для содержимого файла непосредственно значение указанное значение.
Работает, только когда
dest является файлом. Создает файл, если он не существует.
Для расширенного форматирования или если
content содержит переменную, используйте модуль ansible.builtin.template.
|
|
расшифровать
логическое
добавлен в ansible.builtin 2.4
|
|
Этот параметр управляет автоматическим расшифровкой исходных файлов с использованием хранилища.
|
dest
путь/обязательно
|
Удаленный абсолютный путь, в который следует скопировать файл.
Если
src — это каталог, это тоже должен быть каталог.
Если
dest — это несуществующий путь и если либо dest заканчивается на «/», либо src является каталогом, создается dest .
Если dest — относительный путь, начальный каталог i s определяется удаленным хостом.
Если
src и dest являются файлами, родительский каталог dest не создается, и задача не выполняется, если она еще не существует.
|
|
directory_mode
raw
добавлено в версии 1.5 ansible.builtin
|
При выполнении рекурсивного копирования установите режим для каталогов.
Если он не установлен, мы будем использовать системные значения по умолчанию.
Режим устанавливается только для вновь созданных каталогов и не влияет на уже существующие.
|
|
follow
boolean
добавлено в версии 1.8 ansible.builtin
|
|
Этот флаг указывает, что необходимо следовать ссылкам файловой системы в месте назначения, если они существуют.
|
force
boolean
добавлено в версию 1.1 ansible.builtin
|
|
Влияние на необходимость постоянной замены удаленного файла.
Если
да , удаленный файл будет заменен, если содержимое отличается от исходного.
Если
no , файл будет переносится только в том случае, если место назначения не существует.
Псевдоним
thirsty устарел и будет удален в версии 2.13.
псевдонимы: жаждущие
|
group
string
|
Имя группы, которой должен принадлежать файл/каталог, как будет передано в chown .
|
|
local_follow
boolean
добавлено в версии 2.4 ansible. встроенный
|
|
Этот флаг указывает, что файловая система ссылается на исходное дерево, если они существуют, необходимо соблюдать.
|
mode
путь
|
Разрешения для целевого файла или каталога.
Для тех используется, чтобы
/usr/bin/chmod помнить, что режимы на самом деле являются восьмеричными числами. Вы должны либо добавить начальный ноль, чтобы синтаксический анализатор Ansible YAML знал, что это восьмеричное число (например, 0644 или 01777 ), либо заключить его в кавычки (например, '644' или '1777' ), поэтому Ansible получает строку и может выполнять собственное преобразование из строки в число. Если дать Ansible число без следования одному из этих правил, то получится десятичное число, что приведет к неожиданным результатам.
Начиная с Ansible 1.8, режим может быть указан как символьный (например,
u + rwx или u = rw, g = r, o = r ).
Начиная с Ansible 2.3, mode также может быть специальной строкой
preserve .
preserve означает, что файлу будут предоставлены те же разрешения, что и исходному файл.
При выполнении рекурсивного копирования см. также
directory_mode .
|
|
владелец
строка
|
Имя пользователя, которому должен принадлежать файл/каталог, как это будет указано в chown .
|
|
remote_src
boolean
добавлено в ansible.builtin 2.0
|
|
Влияет на то, нужно ли передавать
src или он уже присутствует удаленно.
Если
no , он будет искать src на исходной/главной машине.
Если
да он перейдет на удаленный/целевой компьютер для src .
remote_src поддерживает рекурсивное копирование начиная с версии 2.8.
remote_src работает только с mode = preserve начиная с версии 2.6.
|
selevel
string
|
Уровень контекста файла SELinux.
Это атрибут MLS/MCS, иногда известный как диапазон
.
Если задано значение
_default , будет использоваться часть политики level , если она доступна.
|
|
серол
строка
|
Ролевая часть контекста файла SELinux.
Если задано значение
_default , он будет использовать часть role из политика, если таковая имеется.
|
|
setype
строка
|
Типовая часть контекста файла SELinux.
Если установлено значение
_default , он будет использовать часть политики type , если она доступна.
|
|
seuser
string
|
Пользовательская часть контекста файла SELinux .
По умолчанию он использует политику
system , если применимо.
Если установлено значение
_default , он будет использовать часть политики user , если она доступна.
|
|
src
path
|
Локальный путь в файл, который нужно скопировать на удаленный сервер.
Может быть абсолютным или относительным.
Если путь — это каталог, он копируется рекурсивно. В этом случае, если путь заканчивается на «/», только внутреннее содержимое этого каталога копируется в место назначения. В противном случае, если он не заканчивается на «/», копируется сам каталог со всем содержимым. Это поведение аналогично инструменту командной строки
rsync .
|
|
unsafe_writes
boolean
добавлено в версии 2.2 ansible.builtin
|
|
Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованного чтения из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто сломаны способами, которые предотвращают это. Одним из примеров являются файлы, смонтированные в докере, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Эта опция позволяет Ansible вернуться к небезопасным методам обновления файлов, когда операции завершаются ошибкой (однако это не заставляет Ansible выполнять небезопасную запись).
ВАЖНО! Небезопасные записи могут быть связаны с условиями гонки и могут привести к повреждению данных.
|
validate
строка
|
Команда проверки, выполняемая перед копированием на место.
Путь в файл для проверки передается через ‘% s’, который должен присутствовать, как в примерах ниже.
Команда передается безопасно, поэтому функции оболочки, такие как расширение и каналы, не будут работать.
|
¶
Примечание
-
Средство рекурсивного копирования модуля не масштабируется до партий (> сотен) файлов.
-
Поддерживает
check_mode
.
¶
См. также
-
Официальная документация по модуль ansible.builtin.assemble .
-
Официальная документация по модулю ansible.builtin.fetch .
-
Официальная документация по модулю ansible.builtin.file .
-
Официальная документация по модулю ansible.builtin.template .
-
Официальная документация по модулю ansible.posix.synchronize .
-
Официальная документация по модулю ansible.windows.win_copy .
¶
- имя: копировать файл с владельцем и доступными разрешениями .builtin.copy: src:/srv/myfiles/foo.conf dest:/etc/foo.conf owner: foo group: foo mode: '0644'- name: Скопировать файл с владельцем и разрешением, используя символическое представление ansible.builtin .copy: src:/srv/myfiles/foo.conf dest:/etc/foo.conf owner: foo group: foo mode: u = rw, g = r, o = r- name: Другой символический мод Например, добавление одних разрешений и удаление других ansible.builtin.copy: src:/srv/myfiles/foo.conf dest:/etc/foo.conf owner: foo group: foo mode: u + rw, g-wx, o -rwx- name: Скопируйте новый файл "ntp.conf" на место, сделав резервную копию оригинала, если он отличается от скопированной версии ansible.builtin.copy: src:/mine/ntp.conf dest:/etc/ntp.conf владелец: корневая группа: режим root: '0644' резервная копия: да- имя: Скопируйте новый файл "sudoers" на место после прохождения проверки с помощью visudo ansible.builtin.copy: src:/mine/sudoers dest:/etc/sudoers проверить:/usr/sbin/visudo -csf% s- name: скопировать файл "sudoers" на удаленный компьютер для редактирования ansible.builtin.copy: src:/etc/sudoers dest:/etc/sudoers.edit remote_src: yes validate:/usr/sbin/visudo -csf% s- name: Скопировать с использованием встроенного содержимого ansible.builtin.copy: content: '# Этот файл был перемещен в/etc/other.conf' dest:/etc/mine.conf- name: Если follow = yes,/путь/к/файлу будет перезаписан содержимым foo.conf ansible.builtin.copy: src:/etc/foo.conf dest:/pa th/to/link # ссылка на/path/to/file follow: yes- name: Если follow = no,/path/to/link станет файлом и будет перезаписан содержимым foo.conf ansible.builtin.copy: src:/etc/foo.conf dest:/path/to/link # ссылка на/path/to/file follow: no
¶
Общие возвращаемые значения задокументированы, следующие поля являются уникальными для этого модуля:
Key | Возвращено | Описание |
---|---|---|
backup_file
string
|
изменено, и если backup = yes |
Имя файла резервной копии создано.
Sample:
/path/to/[email protected]: 09 ~
|
контрольная сумма
строка
|
success |
Контрольная сумма SHA1 файла после запуска копирования.
Sample:
6e642bb8dd5c2e027bf21dd923337cbb4214f827
|
dest
string
|
success |
Целевой файл/путь.
Sample:
/ путь/к/file.txt
|
gid
integer
|
success |
Идентификатор группы файла после выполнения.
Sample:
100
|
группа
строка
|
успех |
Группа файла после выполнения.
Sample:
httpd
|
md5sum
string
|
при поддержке |
Контрольная сумма MD5 файла после выполнения копирования.
Пример:
2a5aeecc61dc98c4d780b14b330e3282
|
mode
string
|
успех |
Разрешения цели после выполнения.
Пример:
420
|
владелец
string
|
success |
Владелец файла после выполнения.
Пример:
httpd
|
размер
integer
|
успех |
Размер цели после выполнения.
Sample:
1220
|
src
строка
|
изменено |
Исходный файл, используемый для копии на целевой машине.
Пример:
/home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source
|
состояние строка |
success |
Состояние цели после выполнения.
Пример:
файл
|
uid
integer
|
success |
Владелец идентификатор файла после выполнения.
Sample:
100
|
/copy-webpack-plugin
Копирует отдельные файлы или целые каталоги, которые уже существуют, в каталог сборки.
Начало работы
Для начала вам необходимо установить copy-webpack-plugin
:
npm install copy-webpack-plugin --save-dev
Затем добавьте плагин в конфигурацию webpack
. Например:
webpack.config.js
const CopyPlugin = require ("copy-webpack- plugin "); module.exports = {plugins: [new CopyPlugin ({шаблоны: [{from:" source ", to:" dest "}, {from:" other ", to:" public "},],} ),],};
ℹ️
webpack-copy-plugin
не предназначен для копирования файлов, созданных в процессе сборки; скорее, это копирование файлов, которые уже существуют в исходном дереве, как часть процесса сборки.
ℹ️ emoji> Если вы хотите, чтобы
webpack-dev-server
записывал файлы в выходной каталог во время разработки, вы можете принудительно использовать его с помощью параметраwriteToDisk
илиwrite-file-webpack-plugin
.
ℹ️ Вы можете получить оригинал исходное имя файла из Asset Objects.
Параметры
Подпись плагина:
webpack.config .js
const CopyPlugin = require ("copy-webpack-plugin"); module.exports = {plugins: [new CopyPlugin ({patterns: [{ from: "source", to: "dest"}, {from: "other", to: "public"},], options: {concurrency: 100,},}),],};
Шаблоны
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
из |
{String} |
undefined |
Глобус или путь откуда мы копируем файлы. |
в |
{String | Функция} |
compiler.options.output |
Путь вывода. |
context |
{String} |
options.context || compiler.options.context |
Путь, определяющий, как интерпретировать путь from . |
globOptions |
{Object} |
undefined |
Параметры, переданные в библиотеку сопоставления шаблонов глобуса, включая параметр ignore . |
filter |
{Function} |
undefined |
Позволяет фильтровать скопированные ресурсы. |
toType |
{String} |
undefined |
Определите, что такое в — каталог, файл или шаблон. |
force |
{Boolean} |
false |
Заменяет файлы, уже находящиеся в компиляция. активы (обычно добавляются другими плагинами/загрузчиками). |
transform |
{Object} |
undefined |
Позволяет изменять содержимое файла. Включите кэширование transform . Вы можете использовать {transform: {cache: {key: 'my-cache-key'}}} , чтобы сделать кеш недействительным. |
noErrorOnMissing |
{Boolean} |
false |
Не генерирует ошибку при отсутствии файла (ов). |
информация |
{Object|Function} |
undefined |
Позволяет добавлять информацию об активах. |
из
Тип: String
По умолчанию: undefined
Glob или путь, откуда мы копируем файлы. Glob принимает шаблон fast-glob- синтаксис. Glob может быть только строкой
.
⚠️ Не используйте напрямую
\
в параметреfrom
, если этоglob
(т.е.path to file.ext
), поскольку в UNIX обратная косая черта является допустимым символом внутри компонента пути, т. е. не является разделителем. В Windows прямая косая черта и th Оба символа разделены обратной косой чертой. Вместо этого используйте/
.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: ["относительный/путь/к/файлу.ext», «относительный/путь/к/каталогу», путь .resolve (__ dirname, "src", "file.ext"), path.resolve (__ dirname, "src", "dir"), "**/*", {from: "**/*",}, //Если абсолютный путь - это `glob`, мы заменяем обратную косую черту на косую черту, потому что в пути` glob` можно использовать только косую черту .posix.join (path.resolve (__ dirname, "src"). Replace (/ /g, "/"), "* .txt"),],}),],};
Для окон
Если вы определяете from
как абсолютный путь к файлу или абсолютный путь к папке в Windows
, вы можете использовать сегмент пути Windows ( \
)
module.exports = {плагины: [новый CopyPlugin ({образцы: [{from: path.resolve (__ dirname, "file .txt "),},],}),],};
Но вы всегда должны использовать косую черту s в выражениях glob
См. руководство по fast-glob.
module.exports = {plugins: [new CopyPlugin ({patterns: [{// Если абсолютный путь - это `glob`, мы заменяем обратную косую черту на косую черту, потому что в` glob` можно использовать только косую черту from: path.posix.join (path.resolve (__ dirname, "fixtures"). Replace (/ /g, "/"), "* .txt"),},],}),],};
Контекст ведет себя по-разному в зависимости от того, что такое
from
( glob
, file
или dir
). Дополнительные examples
to
Тип: Строка | Функция
По умолчанию: compiler.options.output
String
Путь вывода.
⚠️ Не используйте напрямую
\
вв
(т.е.path to dest
), потому что в UNIX обратная косая черта является допустимым символом внутри компонента пути, т. е. не является разделителем. В Windows прямая и обратная косая черта являются разделителями. Вместо этого используйте Методы/
илиpath
.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: «**/*», to: «относительный/путь/к/назначению/ ",}, {от:" **/* ", до:"/абсолютный/путь/к/назначению/",}, {от:" **/* ", до:" [путь] [имя]. [contenthash]. [ext] ",},],}),],};
Функция
Позволяет изменить путь записи.
⚠️ Не возвращать каталог ectly
\
вto
(т.е.path to newFile
), потому что в UNIX обратная косая черта является допустимым символом внутри компонента пути, т. е. не является разделителем. В Windows косая черта и обратная косая черта являются разделителями. Вместо этого используйте/
илиpath
методы.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/*. png", to ({context, absoluteFilename}) {return "dest/newPath/[name] [ext]"; },},],}),],};
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/*. png", to ({context, absoluteFilename}) {return Promise.resolve ("dest/newPath/[ имя] [ext] ");},},],}),],};
context
Тип: String
По умолчанию: options.context|compiler.options.context
Путь, определяющий, как интерпретировать from
путь.
⚠️ Не использовать напрямую
\
в параметреcontext
(т.е.path to context
), потому что в UNIX обратная косая черта является допустимым символом внутри компонента пути, т. е. , это не разделитель. В Windows косая черта и обратная косая черта являются разделителями. Вместо этого используйте методы/
илиpath
.
module.exports = {плагины: [новый CopyPlu gin ({шаблоны: [{from: "src/*. txt", to: "dest/", context: "app/",},],}),],};
Параметр context
может быть абсолютным или относительным путем. Если context
является относительным, то он преобразуется в абсолютный на основе compiler.options. context
Кроме того, context
указывает, как интерпретировать результаты поиска. Далее он считается в этой роли.
Для определения структуры, из которой найденные ресурсы будут скопированы в папку назначения, используется опция context
.
Если from
— это файл, то context
равен каталогу, в котором расположен этот файл. Соответственно, результатом будет только имя файла.
Если from
— это каталог, то context
будет таким же, как from
и совпадает с самим каталогом. В этом случае результатом будет иерархическая структура найденных папок и файлов относительно указанного каталога.
Если from
— это глобус, то независимо от параметр context
, результатом будет структура, указанная в параметре from
Дополнительные примеры
globOptions
Тип: Object
По умолчанию: undefined
Позволяет настроить библиотеку сопоставления шаблонов глобуса, используемую плагином. См. Список поддерживаемых параметров Чтобы исключить файлы из выбора, вы должны использовать параметр globOptions.ignore
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "public/**/*", globOptions: {dot: true, gitignore: true, ignore: ["** /file.* "," **/игнорируемый-каталог/** "],},},],}),],};
фильтр
Тип: Функция
По умолчанию: undefined
ℹ️ Чтобы игнорировать файлы по пути, используйте параметр [
globOptions.ignore
] ((# globoptions).
webpack.config.js
const fs = require ("fs"). prom; module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "public/**/*", filter: async (resourcePath) => {const data = await fs.promises.readFile (resourcePath); const content = data. toString (); if (content === "my-custom-content") {return false;} return true;},}, ],}),],};
toType
Тип: String
По умолчанию: undefined
Определить, что является параметром для
— каталог, файл или шаблон. Иногда это сложно скажите, что такое to
, например path/to/dir-with.ext
. Если вы хотите скопировать файлы в каталог, вам нужно использовать dir
. Мы пытаемся автоматически определять тип
, поэтому вам, скорее всего, этот параметр не нужен..
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
'dir' |
{String} |
undefined |
Если to не имеет расширения или заканчивается на '/' |
'файл' |
{String} |
undefined |
Если to не является каталогом и не является шаблоном |
'template' |
{String} |
undefined |
Если to содержит шаблон шаблона |
'dir'
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "путь/к/файлу.txt", в: "каталог/с/extension.ext ", toType:" dir ",},],}),],};
'файл'
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: «путь/к/файлу.txt», to: «файл/без/расширения», toType: «файл»,},],}) ,],};
'template'
webpack.config.js ▪
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/", to: "dest/[name]. [ hash]. [ext] ", toType:" template ",},],}),],};
force
Тип: Boolean
По умолчанию: false
Заменяет файлы, уже находящиеся в компиляции .assets
(обычно добавляются другими плагинами/загрузчиками).
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/**/*", to: "dest/", force: true,},],}),], };
transform
Тип: Функция | Объект
По умолчанию: undefined
Позволяет изменять содержимое файла.
Функция
webpack.config.js
module.exports = {plugins: [new CopyPlugin ({patterns: [{from: "src/*. png", to : "dest/",//Аргумент `content` является объектом [` Buffer`] (https://nodejs.org/api/buffer.html), он может быть преобразован в `String` для обработки с использованием `содержание. toString () `//Аргумент` absoluteFrom` - это `String`, это абсолютный путь, откуда копируется файл transform (content, absoluteFrom) {return optimize (content); },},],}),],};
Object
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
трансформатор |
{Function} |
undefined |
Позволяет изменять содержимое файла. |
cache |
{Boolean | Object} |
false |
Включить кэширование transform . Вы можете использовать transform: {cache: {key: 'my-cache-key'}} , чтобы сделать кеш недействительным. |
transformer
Тип: Функция
По умолчанию: undefined
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [ {from: "src/*. png", to: "dest/",//Аргумент `content` является объектом [` Buffer`] (https://nodejs.org/api/buffer.html), он может быть преобразован в `String` для обработки с помощью` content.toString () `//Аргумент` absoluteFrom` - это `String`, это абсолютный путь, откуда копируется файл transform: {transformer (content, absoluteFrom) {return optimize (content);},},},],}),],};
webpack.config.js
module.exports = {plugins: [new CopyPlugin ({patterns: [{from: "src/*. png", to: "dest/", преобразовать: {transformer (content, path) {return Promise.resolve (optimize (content));},}, },],}),],};
cache
Тип: Логическое значение | Объект
По умолчанию: false
Включить/отключить и настроить кеширование. Путь по умолчанию к каталогу кеширования: node_modules/.cache/copy-webpack-plugin
.
Boolean
Включает/отключает кеширование transform
.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/*. png", to: "dest/", transform: { преобразователь (контент, путь) {return optimize (content); }, cache: true,},},],}),],};
Object
Включает transform
кэширование и настройку каталога кэша и ключей недействительности.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/*. png", to: "dest/", transform: {transformer (content, path) {return optimize (content);}, кеш: {каталог: путь. resolve (__ dirname, "cache-directory"), keys: {//Может быть полезно для аннулирования кеша на основе внешних значений//Например, вы можете недействить кеш на основе `process.version` - {node: process.version} key: "value",},},},},],}),],};
Вы можете настроить ключи аннулирования с помощью функции.
Простая функция:
webpack.config.js
module.exports = {plugins : [новый CopyPlugin ({шаблоны: [{from: "src/*. png", to: "dest/", transform: {transformer (content, path) {return optimize (content);}], cache: {directory: path.resolve (__ dirname, "cache-directory"), keys: (defaultCacheKeys, absoluteFrom) => {const keys = getCustomCacheInvalidationKeysSync (); return {... defaultCacheKeys, keys,};},},},},] ,}),],};
Асинхронная функция:
webpack.config.js
module.exports = {plugins: [new CopyPlugin ({patterns: [{from: "src/*. png", to: "dest/", transform: {transformer (conten t, путь) {return optimize (content); }, кеш: {каталог: путь.resolve (__ dirname, "кеш-каталог"), ключи: async (defaultCacheKeys, absoluteFrom) => {const keys = await getCustomCacheInvalidationKeysAsync (); return {... defaultCacheKeys, keys,}; },},},},],}),],};
noErrorOnMissing
Тип : Boolean
По умолчанию: false
Не генерирует ошибку при отсутствии файла (ов);
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: path.resolve (__ dirname, "missing-file.txt"), noErrorOnMissing: true,},], }),],};
info
Тип: Объект | Функция
По умолчанию: undefined
Позволяет добавлять информацию об активах.
webpack.config .js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: ["относительный/путь/к/file.ext", {от: "**/*",//Terser пропускает этот файл для информации о минимизации: {minimized: true},},],}),],};
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: ["относительный/путь/к/file.ext ", {from:" **/* ",//Terser пропускает этот файл для сведения к минимуму: (файл) => ({Minimized: true}),},],}),],};
Параметры
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
concurrency |
{Number} |
100 |
Ограничивает количество одновременных запросов до fs |
concurrency
ограничивает количество одновременных запросов до fs
webpack.config. js
module.exports = {plugins: [new CopyPlugin ({patterns: [... шаблоны], параметры: {concurrency: 50},}),],};
Примеры
Различные варианты из
( glob
, file
или dir
).
Возьмем для примера следующая структура файла:
src/directory-nested/deep-nested/deepnested-file.txtsrc/directory-nested/nested-file.txt
From — это глобус
Все, что вы укажете в from
, будет включено в результат:
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/ directory-nested/**/* ",},],}),],};
Результат:
src/directory-nested/deep-nested/deepnested-file.txt, src/directory-nested/nested-file.txt
Если вам нужен только контент src/directory-nested/
, вы должны указывать только glob
в из
. Путь к папке, в которой должен производиться поиск, нужно переместить в context
.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "**/*", context: path.resolve (__ dirname, "src "," вложенный в каталог "),},],}),],};
Результат:
глубокий -nested/deepnested-file.txt, nested-file.txt
From — это каталог
webpack.config.js
module.exports = {plugins: [new CopyPlugin ({patterns: [{from: path.resolve (__ dirname, "src", "directory-nested "),},],}),],};
Результат:
deep-nested/deepnested-file .txt, nested-file.txt
Технически это **/*
с предопределенным контекстом, равным указанному каталогу.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [ {from: "**/*", context: path.reso lve (__ dirname, "src", "directory-nested"),},],}),],};
Результат:
deep-nested/deepnested-file.txt,nested-file.txt
From — это файл
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: path.resolve (__dirname, "src", "directory-nested", "nested-file.txt"),},],}) ,],};
Результат:
nested-file.txt
Технически это имя файла с предопределенным контекстом, равным path.dirname (pathToFile)
.
webpack.config.js ▪
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "nested-file.txt", context: path.resolve (__ dirname , "src", "directory-nested"),},],}),],};
Результат:
nested-file.txt
Игнорирование файлов
webpack.config.js
модуль. export = {plugins: [new CopyPlugin ({образцы: [{from: path.posix.join (path.resolve (__ dirname, "src"). replace (/\/g, "/"), "**/ * "), globOptions: {ignore: [//Игнорировать все файлы` txt` «**/*. txt»,//Игнорировать все файлы во всех подкаталогах «**/subdir/**»,],},} ,],}),],};
Свести копию
Удаляет все ссылки на каталоги и копирует только имена файлов.
⚠️ Если файлы имеют одинаковое имя, результат недетерминированный.
webpack.config.js
module.exports = {плагины: [новый CopyPlugin ({шаблоны: [{from: "src/**/* ", to:" [name]. [ext] ",},],}),],};
Результат:
file-1.txtfile-2.txtnested-file.txt
Скопировать в новый каталог
webpack. config.js
module.exports = {plugins: [new CopyPlugin ({patterns: [{//При копировании файлов, начинающихся с точки, необходимо указать toType option//toType: " file ", to ({context, absoluteFilename}) {return` newdirectory/$ {path.relative (context, absoluteFilename)} `; }, from: "directory",},],}),],};
Результат:
"newdirectory /file-1.txt","newdirectory/nestedfile.txt","newdirectory/nested/deep-nested/deepnested.txt","newdirectory/nested/nestedfile.txt",
Содействие
Пожалуйста, найдите время, чтобы прочитать наши правила участия, если вы еще этого не сделали.
СОДЕЙСТВИЕ
Лицензия
MIT