如何将 System.js 与 CDN 和本地回退一起使用?

How to use System.js with CDN and local fallback?

我 运行 jspm install angular 并将其本地安装到我的 jspm_packages 文件夹中。

从代码中,我使用常规的 ES6 导入,例如 import angular from 'angular'

如果 CDN 不可用,我需要做什么才能从 CDN 加载 angular 并回退到本地版本?

您可以有不同的 config.js 文件用于开发和生产,其中生产文件从 CDN 获取 angular 而开发文件在本地获取。但是,目前(据我所知)没有办法让 SystemJS 尝试一个来源,如果失败则回退到另一个来源。

System.config({
    "map": {
        "jquery": "https://code.jquery.com/jquery-2.1.4.js"
    }
});

我建议您为 angular 创建一个适配器模块:

local-repo/angular.js

define(function() {
    return window.angular;
});

像这样,您可以使用您的配置文件进行部署和生产。 在生产环境中,您只需确保首先加载 angular:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script> 系统代码..