2.0.10 • Published 10 years ago

atm-get-deps v2.0.10

Weekly downloads
3
License
ISC
Repository
github
Last release
10 years ago

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

10 years ago

2.0.9

10 years ago

2.0.8

10 years ago

2.0.7

10 years ago

2.0.6

10 years ago

2.0.5

10 years ago

2.0.4

10 years ago

2.0.3

10 years ago

2.0.2

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.6.1

10 years ago

1.6.0

10 years ago

1.5.0

10 years ago

1.2.0

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago

0.0.0

10 years ago