symlink()#

ファイルシステムにVinylオブジェクトをリンクするためのストリームを作成します。

使用方法#

const { src, symlink } = require('gulp');
function link() {
return src('input/*.js')
.pipe(symlink('output/'));
}
exports.link = link;

シグネチャ#

symlink(directory, [options])

パラメータ#

パラメータ備考
directory
(必須)
文字列
関数
シンボリックリンクが作成される出力ディレクトリのパス。関数が使用される場合、関数は各Vinylオブジェクトで呼び出され、文字列のディレクトリパスを返す必要があります。
optionsオブジェクト下記のオプションで詳しく説明しています。

戻り値#

ファイルシステムにシンボリックリンクを作成するために、パイプラインの中間または最後に使用できるストリーム。Vinylオブジェクトがストリームを通過するたびに、指定されたディレクトリにファイルシステム上の元のファイルへのシンボリックリンクが作成されます。

ファイルシステムにシンボリックリンクが作成されると、Vinylオブジェクトが変更されます。

  • cwdbasepathプロパティは、作成されたシンボリックリンクに一致するように更新されます。
  • statプロパティは、ファイルシステム上のシンボリックリンクに一致するように更新されます。
  • contentsプロパティはnullに設定されます。
  • symlinkプロパティは追加されるか、元のパスで置き換えられます。

注記: Windowsでは、デフォルトでジャンクションを使用してディレクトリリンクが作成されます。useJunctionsオプションでこの動作を無効にできます。

エラー#

directoryが空文字列の場合、「無効なsymlink()フォルダ引数です。空でない文字列または関数を指定してください。」というメッセージのエラーがスローされます。

directoryが文字列または関数でない場合、「無効なsymlink()フォルダ引数です。空でない文字列または関数を指定してください。」というメッセージのエラーがスローされます。

directoryが空文字列またはundefinedを返す関数の場合、「無効な出力フォルダ」というメッセージのエラーが emit されます。

オプション#

関数を受け入れるオプションの場合、渡された関数は各Vinylオブジェクトで呼び出され、別のリストされた型の値を返す必要があります。

名前デフォルト備考
cwd文字列
関数
process.cwd()相対パスと組み合わせて絶対パスを形成するディレクトリ。絶対パスでは無視されます。path.join()directoryを組み合わせるのを避けるために使用します。
dirMode数値
関数
ディレクトリ作成時に使用するモード。設定されていない場合、プロセスのモードが使用されます。
overwriteブール値
関数
truetrueの場合、同じパスの既存のファイルを上書きします。
relativeSymlinksブール値
関数
falsefalseの場合、作成されるシンボリックリンクはすべて絶対パスになります。
注記: ジャンクションが作成されている場合は無視されます。ジャンクションは絶対パスでなければなりません。
useJunctionsブール値
関数
trueこのオプションはWindowsでのみ関連があり、それ以外の場所では無視されます。trueの場合、ディレクトリシンボリックリンクをジャンクションとして作成します。詳細は下記のWindowsでのシンボリックリンクを参照してください。

Windowsでのシンボリックリンク#

Windowsでシンボリックリンクを作成する場合、リンク先のターゲットのタイプを指定するtype引数がNodeのfs.symlink()メソッドに渡されます。リンクタイプは、

  • ターゲットが通常のファイルの場合'file'
  • ターゲットがディレクトリの場合'junction'
  • ターゲットがディレクトリであり、ユーザーがuseJunctionsオプションを無効にした場合'dir'

ぶら下がり(存在しないターゲットを指す)リンクを作成しようとすると、リンクタイプを自動的に判別できません。このような場合、動作はsymlink()またはdest()を介してぶら下がりリンクが作成されるかどうかに応じて異なります。

symlink()を介して作成されたぶら下がりリンクの場合、入力Vinylオブジェクトはターゲットを表すため、その統計情報によって目的のリンクタイプが決定されます。isDirectory()がfalseを返す場合、'file'リンクが作成され、それ以外の場合はuseJunctionsオプションの値に応じて'junction'または'dir'リンクが作成されます。

dest()を介して作成されたぶら下がりリンクの場合、入力Vinylオブジェクトはリンクを表します。通常はsrc(..., { resolveSymlinks: false })を介してディスクからロードされます。この場合、リンクタイプを合理的に判断できず、デフォルトで'file'を使用します。これにより、ディレクトリへのぶら下がりリンクを作成すると予期しない動作が発生する可能性があります。このシナリオは避けてください。