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

时间:2016-01-25 20:25:51

标签: javascript amd commonjs systemjs es6-module-loader

使用SystemJS,如何指定一个库依赖于另一个库?例如,Bootstrap JavaScript库取决于jQuery。基于SytemJS docs,我假设我将使用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');

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

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

1 个答案:

答案 0 :(得分: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');

我认为关键是从map更改为paths

修改

附注:在学习了更多关于SystemJS之后,我发现 更容易让jspm做出管理SystemJS配置的艰苦工作。< / p>