#
symlink()Создает поток для связывания объектов Vinyl с файловой системой.
#
Применение#
Подпись#
Параметрыпараметр | тип | примечание |
---|---|---|
directory (обязательный) | string function | Путь к выходному каталогу, в котором будут созданы символические ссылки. Если функция используется, она будет вызываться с каждым объектом Vinyl и должна возвращать строковый путь к каталогу. |
options | object | Подробнее в Опциях ниже. |
#
ВозвращаетсяПоток, который можно использовать в середине или в конце конвейера для создания символических ссылок в файловой системе. Всякий раз, когда объект Vinyl проходит через поток, он создает символическую ссылку на исходный файл в файловой системе в данном каталоге.
Всякий раз, когда в файловой системе создается символическая ссылка, объект Vinyl будет изменен.
- Свойства
cwd
,base
иpath
будут обновлены, чтобы соответствовать созданной символической ссылке. - Свойство
stat
будет обновлено, чтобы соответствовать символической ссылке в файловой системе. - Свойство
contents
будет установлено вnull
. - Свойство
symlink
будет добавлено или заменено исходным путем..
Примечание: В Windows ссылки каталогов по умолчанию создаются с использованием переходов. Опция useJunctions
отключает это поведение.
#
ОшибкиКогда directory
является пустой строкой, выдает ошибку с сообщением: "Invalid symlink() folder argument. Please specify a non-empty string or a function."
Когда directory
не является строкой или функцией, выдает ошибку с сообщением: "Invalid symlink() 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() . |
dirMode | number function | Режим, используемый при создании каталогов. Если не установлен, будет использоваться режим процесса. | |
overwrite | boolean function | true | Если установлено значение true , существующие файлы перезаписываются с тем же путем. |
relativeSymlinks | boolean function | false | Если установлено значение false , любые созданные символические ссылки будут абсолютными.Примечание: Игнорируется, если создается соединение, поскольку они должны быть абсолютными. |
useJunctions | boolean function | true | Этот параметр актуален только в Windows и в других местах игнорируется. Если установлено значение true , создает символическую ссылку на каталог в виде соединения. Подробно в Символические ссылки в Windows ниже. |
#
Символические ссылки в 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'
. Это может вызвать непредвиденное поведение при создании висячей ссылки на каталог. Избегайте этого сценария.