RequireJS正确处理外部依赖关系404

时间:2015-04-08 00:05:37

标签: javascript requirejs

我不确定如何处理来自RequireJS的外部依赖关系的404。我在下面列出了我的require.js文件样本:

requirejs.config({
  paths: {
    jquery: '/js/jquery-2.1.0.min',
    script1: 'http://s3.amazonaws.com/script1.min',
    script2: 'http://s3.amazonaws.com/script2.min',
  },
  shim: {
    script1: {
      deps:['jquery'],
      exports: 'script1'
    },
    script2: {
      deps:['script1'],
      exports: 'script2'
    }
  }
});

requirejs([
  'script1',
  'script2'
]);

我希望能够在没有Script Error的情况下处理外部依赖关闭或不可用。在这种情况下,Script Error是正确的行为吗?我想在404的情况下必须有一种不包含脚本的方法。

1 个答案:

答案 0 :(得分:1)

require可以为错误回调采用其他参数,如下所示:

require(['script1', 'script2'], function (a, b) {
    // Normal execution
}, function (err) {
    // Error, such as a 404.
});

如果您愿意,可以分别加载每个依赖项,因此如果脚本1或脚本2 404s,您可以执行自定义错误处理。

require([], function () {
    require(['script1'], function (a) {
        // Do stuff with a
    }, function (err) { });
    require(['script2'], function (b) {
        // Do stuff with b
    }, function (err) { });
});