2.0.10 • Published 9 years ago
atm-get-deps v2.0.10
atm-get-deps
###css依赖顺序的解析
// login.css的依赖
[
'account.css'
]
// account.css的依赖
[
'reset.css', //重置样式
'dialog.css', //弹窗
'validator.css' //验证
]
// dialog.css的依赖
[
'reset.css'
]
// reset.css & validator.css 没有依赖
###加载顺序规则解释
// login依赖account
// 因此第一步的依赖为
var deps = [
'account.css'
]
// account.css依赖 reset.css, dialog.css, validator.css
// 顺序应该是
deps = [
'reset.css.deps',
'reset.css',
'dialog.css.deps',
'dialog.css',
'validator.css.deps',
'validator.css',
'account.css'
]
// 即依赖顺序为
deps = [
// reset.css.deps为null
'reset.css',
'reset.css', // dialog.css.deps
'dialog.css',
//validator.css.deps为null
'validator.css',
'account.css'
]
// 去重得到最终依赖顺序
deps = [
'reset.css',
'dialog.css',
'validator.css',
'account.css'
]
,因此顺序是: account.css login.css
// login
[
'reset.css',
'validator.css',
'dialog.css',
'account.css'
]
var deps = [];
// 获取一个文件的依赖
function getDeps (file) {
deps.unshift(file);
// 如果文件有依赖
if (fileDeps.length) {
deps = fileDeps.concat(file);
//
fileDeps.reverse().forEach(function (depFile) {
getDeps(depFile);
});
}
}
// 对deps进行去重处理
function unique (arr) {
var obj = {},
newArr = [];
arr.forEach(function (id) {
if (!obj[id]) {
newArr.push(id);
}
obj[id] = true;
});
return newArr;
}
2.0.10
9 years ago
2.0.9
9 years ago
2.0.8
9 years ago
2.0.7
9 years ago
2.0.6
9 years ago
2.0.5
9 years ago
2.0.4
9 years ago
2.0.3
9 years ago
2.0.2
9 years ago
2.0.1
9 years ago
2.0.0
9 years ago
1.6.1
9 years ago
1.6.0
9 years ago
1.5.0
9 years ago
1.2.0
9 years ago
1.1.1
9 years ago
1.1.0
9 years ago
0.0.4
9 years ago
0.0.3
9 years ago
0.0.2
9 years ago
0.0.1
9 years ago
0.0.0
9 years ago