6

使用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错误——这意味着 Bootstrap 是在 jQuery 之前加载的。

如何确保 jQuery 总是在 Bootstrap 之前加载?

4

1 回答 1

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');

我认为关键是从 更改mappaths

编辑

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

于 2016-02-03T16:24:28.730 回答