如何使用SystemJS指定库依赖项?

Nat*_*end 6 javascript amd commonjs systemjs es6-module-loader

使用SystemJS,如何指定一个库依赖于另一个库?例如,Bootstrap JavaScript库依赖于jQuery.基于SytemJS文档,我假设我将使用System.config.meta属性指定此依赖项:

System.config({
    baseUrl: './scripts',
    defaultJSExtensions: true,
    map: {
        jquery: './lib/jquery-2.2.0.min.js',
        bootstrap: './lib/bootstrap.min.js'
    },
    meta: {
        bootstrap: {
            deps: ['jquery']
        }
    }
});
System.import('./scripts/app.js');
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果.当我运行我的应用程序时,Bootstrap库会抛出一个Bootstrap's JavaScript requires jQuery错误 - 这意味着在jQuery之前加载了Bootstrap.

如何确保在Bootstrap之前始终加载jQuery?

Nat*_*end 4

在盲目改变之后,我偶然发现了一个似乎有效的配置。这是我的配置:

System.config({
    defaultJSExtensions: true,
    paths: {
        jquery: './scripts/lib/jquery-2.2.0.min.js',
        bootstrap: './scripts/lib/bootstrap.min.js'
    },
    meta: {
        bootstrap: {
            deps: ['jquery']
        }
    }
});

System.import('./scripts/app.js');
Run Code Online (Sandbox Code Playgroud)

我认为关键是从map变为paths

编辑

旁注:在更多地了解 SystemJS 之后,我发现让jspm来完成管理 SystemJS 配置的艰苦工作要容易得多。