fs
モジュールを使用してシンボリックリンクを作成します。
fs.symlink("target", "path/to/symlink", function (e) {
if (e) { ... }
});
path/to/symlink
がすでに存在する場合、コールバックでエラーが送信されます。
シンボリックリンクの作成を強制し、既存のシンボリックリンクを上書きするにはどうすればよいですか?
check error + delete existing symlink + try again
以外の選択肢はありますか?
ln
コマンドラインツールを使用する場合、-f
(強制)フラグを使用してこれを行うことができます
ln -sf target symlink-name
ただし、この機能をモジュールに実装しない限り、fs
APIを使用してこれを行うことはできません。
lnf
-既存のシンボリックリンクを上書きするモジュールを作成しました。
// Dependencies
var Lnf = require("lnf");
// Create the symlink
Lnf.sync("foo", __dirname + "/baz");
// Override it
Lnf("bar", __dirname + "/baz", function (err) {
console.log(err || "Overriden the baz symlink.");
});
別の(一意の)名前で一時的なシンボリックリンクを作成してから、名前を変更できます。
fs.symlinkSync(path, tempName)
を使用してからfs.rename(tempName, name)
を使用します。
他のアプリケーションがその存在に依存している場合は、ファイルを削除するよりも優れている場合があります(また、削除されたがまだ再作成されていない場合に、誤ってファイルにアクセスする可能性があります)。