ansible.builtin.copy — Копирование файлов в удаленные места — Документация Ansible

ansible.builtin.copy — Копирование файлов в удаленные места — Документация Ansible
На чтение
100 мин.
Просмотров
9
Дата обновления
11.11.2024

Примечание

Этот модуль является частью ansible-base и включен во все установки Ansible. В большинстве случаев вы можете использовать краткую копию имени модуля даже без указания ключевого слова collections: . Несмотря на это, мы рекомендуем вам использовать FQCN для упрощения ссылки на запланированную документацию и во избежание конфликта с другими коллекциями с одинаковым именем модуля.

  • Модуль copy копирует файл с локального или удаленного компьютера в место на удаленном компьютере.

  • Используйте модуль для копирования файлов из удаленных мест в локальный ящик.

  • Если вам нужна интерполяция переменных в скопированных файлах, воспользуйтесь модулем. Использование переменной в поле content приведет к непредсказуемому результату.

  • Для целей Windows используйте вместо этого модуль.

Примечание

У этого модуля есть соответствующий.

r>

Параметр Варианты/ Значения по умолчанию Комментарии

атрибуты

строка
добавлена ​​в 2.3 в ansible.builtin
Атрибуты итоговый файл или каталог должны иметь.
Чтобы получить поддерживаемые флаги, посмотрите страницу руководства для chattr в целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и строка, отображаемая lsattr .
Оператор = предполагается как по умолчанию, в противном случае в строку должны быть включены операторы + или - .
aliases: attr

backup

boolean
добавлено в 0.7 из ansible.builtin
    Варианты:
  • нет
  • yes
Создайте файл резервной копии, включая информацию о временной метке, чтобы вы могли вернуть исходный файл, если вы каким-то образом его неправильно затерли.

контрольная сумма

строка
добавлена ​​в 2.5 в ansible.builtin
Контрольная сумма SHA1 передаваемого файла.
Используется для проверки успешности копирования файла.
Если это не указано, ansible будет использовать вычисляемая локальная контрольная сумма файла src.

content

строка
добавлена ​​в 1.1 в ansible.builtin
При использовании вместо src устанавливает для содержимого файла непосредственно значение указанное значение.
Работает, только когда dest является файлом. Создает файл, если он не существует.
Для расширенного форматирования или если content содержит переменную, используйте модуль ansible.builtin.template.

расшифровать

логическое
добавлен в ansible.builtin 2.4
    Варианты:
  • no
  • да
Этот параметр управляет автоматическим расшифровкой исходных файлов с использованием хранилища.

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
    Варианты:
  • нет
  • yes
Этот флаг указывает, что необходимо следовать ссылкам файловой системы в месте назначения, если они существуют.

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

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий