执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
'use strict';
module.exports = require('./loader')(global, loadImplementation);
 
function loadImplementation(implementation) {
    let impl;
 
    if (implementation === 'global.Observable') {
        // If no implementation or env specified use global.Observable
        impl = {
            Observable: global.Observable,
            implementation: 'global.Observable'
        };
    } else if (implementation) {
        // If implementation specified, require it
        const lib = require(implementation);
 
        impl = {
            Observable: lib.Observable || lib.default || lib,
            implementation
        };
    } else {
        // Try to auto detect implementation. This is non-deterministic
        // and should prefer other branches, but this is our last chance
        // to load something without throwing error
        impl = tryAutoDetect();
    }
 
    if (!impl) {
        throw new Error('Cannot find any-observable implementation nor' +
            ' global.Observable. You must install polyfill or call' +
            ' require("any-observable/register") with your preferred' +
            ' implementation, e.g. require("any-observable/register")(\'rxjs\')' +
            ' on application load prior to any require("any-observable").');
    }
 
    return impl;
}
 
function tryAutoDetect() {
    const libs = [
        'rxjs',
        'zen-observable'
    ];
 
    for (const lib of libs) {
        try {
            return loadImplementation(lib);
        } catch (_) {}
    }
 
    return null;
}