#
dest()Создает поток для записи объектов Винил в файловую систему.
#
Применение#
Подпись#
Параметрыпараметр | тип | примечание |
---|---|---|
directory (required) | string function | Путь к выходному каталогу, в который будут записаны файлы. Если функция используется, она будет вызываться с каждым объектом Vinyl и должна возвращать строковый путь к каталогу. |
options | object | Подробнее в Опциях ниже. |
#
ВозвращаетсяПоток, который можно использовать в середине или в конце конвейера для создания файлов в файловой системе.
Всякий раз, когда объект Vinyl проходит через поток, он записывает содержимое и другие детали в файловую систему в данном каталоге. Если объект Vinyl имеет свойство symlink
, символическая ссылка будет создана вместо записи содержимого. После создания файла его метаданные будут обновлены для соответствия объекту Vinyl.
Каждый раз, когда файл создается в файловой системе, объект Vinyl будет изменен.
- Свойства
cwd
,base
иpath
будут обновлены, чтобы соответствовать созданному файлу. - Свойство
stat
будет обновлено, чтобы соответствовать файлу в файловой системе. - Если свойство
contents
является потоком, оно будет сброшено, чтобы его можно было прочитать снова.
#
ОшибкиКогда directory
является пустой строкой, выдает ошибку с сообщением: "Invalid dest() folder argument. Please specify a non-empty string or a function."
Когда directory
не является строкой или функцией, выдает ошибку с сообщением: "Invalid dest() folder argument. Please specify a non-empty string or a function."
Когда directory
- это функция, которая возвращает пустую строку или undefined
, выдает ошибку с сообщением: "Invalid output folder".
#
ОпцииДля параметров, которые принимают функцию, переданная функция будет вызываться с каждым объектом Vinyl и должна возвращать значение другого перечисленного типа.
наименование | тип | по умолчанию | примечание |
---|---|---|---|
cwd | string function | process.cwd() | Каталог, который будет объединен с любым относительным путем, чтобы сформировать абсолютный путь. Игнорируется для абсолютных путей. Используйте, чтобы избежать объединения directory с path.join() . |
mode | number function | stat.mode объекта Vinyl | Режим, используемый при создании файлов. Если не установлен и параметр stat.mode отсутствует, вместо него будет использоваться режим процесса. |
dirMode | number function | Режим, используемый при создании каталогов. Если не установлен, будет использоваться режим процесса. | |
overwrite | boolean function | true | Если установлено значение true , существующие файлы перезаписываются с тем же путем. |
append | boolean function | false | Если true , добавляет содержимое в конец файла вместо замены существующего содержимого. |
sourcemaps | boolean string function | false | Если true , записывает встроенные исходные карты в выходной файл. Указание строкового пути string приведет к записи внешних sourcemaps по заданному пути. |
relativeSymlinks | boolean function | false | Если установлено значение false , любые созданные символические ссылки будут абсолютными.Примечание: Игнорируется, если создается соединение, поскольку они должны быть абсолютными. |
useJunctions | boolean function | true | Этот параметр актуален только в Windows и в других местах игнорируется. Если задано значение true , создает символическую ссылку каталога в виде соединения. Подробно в Символические ссылки в Windows ниже. |
#
Обновления метаданныхКаждый раз, когда поток dest()
создает файл, объекты Vinyl mode
, mtime
и atime
сравниваются с созданным файлом. Если они отличаются, созданный файл будет обновлен, чтобы отразить метаданные объекта Vinyl. Если эти свойства совпадают или gulp не имеет разрешений на внесение изменений, попытка автоматически пропускается.
Эта функция отключена в Windows или других операционных системах, которые не поддерживают методы Node process.getuid()
или process.geteuid()
. Это происходит из-за того, что Windows дает неожиданные результаты при использовании fs.fchmod()
и fs.futimes()
.
Примечание: Метод fs.futimes()
внутренне конвертирует временные метки mtime
и atime
в секунды. Это деление на 1000 может вызвать некоторую потерю точности в 32-битных операционных системах.
#
Исходные картыПоддержка Sourcemap встроена непосредственно в src()
и dest()
, но по умолчанию отключена. Включите его для создания встроенных или внешних исходных карт.
Встроенные исходные карты:
Внешние исходные карты:
#
Символические ссылки в WindowsПри создании символьных ссылок в Windows, аргумент type
передается методу Node fs.symlink()
, который указывает тип связываемой цели. Тип ссылки установлен на:
'file'
, когда целью является обычный файл'junction'
, когда целью является каталог'dir'
, когда целью является каталог и пользователь отключает параметрuseJunctions
Если вы попытаетесь создать висящую (указывающую на несуществующую цель) ссылку, тип ссылки не может быть определен автоматически. В этих случаях поведение будет варьироваться в зависимости от того, создается ли висячая ссылка через symlink()
или через dest()
.
Для висящих ссылок, созданных с помощью symlink()
, входящий объект Vinyl представляет цель, поэтому его статистика будет определять желаемый тип ссылки. Если isDirectory()
возвращает false
, создается ссылка на 'file'
, в противном случае создается ссылка 'junction'
или 'dir'
в зависимости от значения параметра useJunctions
.
Для висящих ссылок, созданных с помощью dest()
, входящий объект Vinyl представляет ссылку - обычно загружается с диска через src(..., { resolveSymlinks: false })
. В этом случае тип ссылки не может быть обоснованно определен и по умолчанию используется 'file'
. Это может вызвать непредвиденное поведение, если вы создаете висящую ссылку на каталог. Избегайте этого сценария.