在node.js中,不能摆脱糟糕的符号链接

我有一个uglify函数,它创build一个文件lib-0.1.4-min.js ,然后将其链接到lib-production-min.js0.1.4是当前版本。

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

当我运行编译函数时, fs.existsSync( "lib-production-min.js" )返回false。 当我稍后尝试创build符号链接时, nodefile 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. 我该如何检查这个deadlink是否在目录中?

  2. 将正常的fs.unlinkSync( "lib-production-min.js" )删除呢?

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

使用fs.readlinkSync(symlinkPath)获取符号链接指向的文件,然后使用带有该path的fs.existsSync

问题是链接文件存在,链接的目的地丢失。