5

我有一个uglify函数可以创建一个文件lib-0.1.4-min.js,然后将其符号链接到lib-production-min.js. 0.1.4是当前版本。

由于此目录的同步,有时lib-production-min.js链接断开。

当我运行编译函数时,fs.existsSync( "lib-production-min.js" )返回false。当我稍后尝试创建符号链接时,node使用file already exists.

var version = 'lib-0.1.4-min.j';
var prod = 'lib-production-min.js';

// if production exists, get rid of it
if( fs.existsSync(prod) ) fs.unlinkSync( prod );  // not exists - not deleted

// link version to production
fs.symlinkSync( version, prod );                  // ERROR: file already exists
  1. 如何检查此死链接是否在目录中?

  2. 会正常fs.unlinkSync( "lib-production-min.js" )删除吗?

4

2 回答 2

4

fs.lstat()或者fs.lstatSync()可能会帮助你。他们应该带来有关链接本身的信息,而不是跟随它。

于 2013-06-21T15:08:06.547 回答
1

用于fs.readlinkSync(symlinkPath)获取符号链接指向的文件,然后fs.existsSync与该路径一起使用。

问题是链接文件存在,链接的目标是缺少的那个。

于 2013-01-19T17:11:28.443 回答