7 Star 5 Fork 2

zonghuan / h5

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
index.js 2.03 KB
一键复制 编辑 原始数据 按行查看 历史
zonghuan 提交于 2015-02-25 16:38 +08:00 . commit on 2015/02/25
var fs = require('fs') ;
var path = require('path') ;
//@note 获取文件夹下的所有文件 , 若url为文件或者路径不存在 , 直接返回
//@return { url : true||false||{ url : true||false||... } } 类似于如此的递归结构
var getFiles = function(url){
if(!fs.existsSync(url)){
console.log('不存在路径:'+url) ;
return false;
}
var state = fs.statSync( url ) ;
var flag = {} ;
var isJsFile = function(url){
return /(.js)$/.test(url) ;
} ;
if( state.isFile() ){
if( isJsFile(url) ){
flag[url + ''] = true ;
}else{
flag[url + ''] = false ;
}
return flag ;
}else if( state.isDirectory() ){
var files = fs.readdirSync(url) ;
var obj = {} ;
for(var i = 0 ; i < files.length ; i++ ){
var wholeUrl = url + '//' + files[i] ;
var wholeState = fs.statSync( wholeUrl ) ;
if( wholeState.isFile() ){
if( isJsFile(wholeUrl) ){
obj[ wholeUrl ] = true ;
}else{
obj[ wholeUrl ] = false ;
}
}
if( wholeState.isDirectory() ){
obj[ wholeUrl ] = getFiles( wholeUrl ) ;
}
}
flag[url + ''] = obj ;
return flag ;
}else{
return false ;
}
} ;
//@note 将getFiles获取的对象转化为只包含js文件的数组
var getJsFiles = function(obj){
var list = [] ;
(function getUrlInObj(obj){
for(var i in obj ){
if( obj[i] === true ){
list.push(path.normalize(i)) ;
}
if( typeof(obj[i]) === 'object' ){
getUrlInObj(obj[i]) ;
}
}
}(obj)) ;
return list ;
} ;
var Scan = function(option){
if( option === undefined ){
option = {} ;
}
this.url = option.url ;
} ;
Scan.prototype.setBaseUrl = function(url){
this.url = url ;
} ;
Scan.prototype.getBaseUrl = function(){
return this.url ;
} ;
Scan.prototype.start = function(){
if(!this.url){
console.log('请定义扫描器的路径') ;
return ;
}
return getJsFiles( getFiles(this.url) || {} ) ;
} ;
module.exports = Scan ;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/zonghuan/h5.git
git@gitee.com:zonghuan/h5.git
zonghuan
h5
h5
master

搜索帮助