在node.js中,不能摆脱糟糕的符号链接
我有一个uglify
函数,它创build一个文件lib-0.1.4-min.js
,然后将其链接到lib-production-min.js
。 0.1.4
是当前版本。
由于这个目录的同步,有时lib-production-min.js
是一个断开的链接。
当我运行编译函数时, fs.existsSync( "lib-production-min.js" )
返回false。 当我稍后尝试创build符号链接时, 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
-
我该如何检查这个deadlink是否在目录中?
-
将正常的
fs.unlinkSync( "lib-production-min.js" )
删除呢?
fs.lstat()
或fs.lstatSync()
可能会帮助你。 他们应该带来有关链接本身的信息,而不是跟随它。
使用fs.readlinkSync(symlinkPath)
获取符号链接指向的文件,然后使用带有该path的fs.existsSync
。
问题是链接文件存在,链接的目的地丢失。