JSPM与外部系统js文件捆绑在一起

时间:2016-04-15 18:48:33

标签: javascript node.js angular jspm

我正在从CDN加载我的angular2文件作为System js模块。

我有几个文件可以导入angular2的各种系统js模块。

现在我想使用JSPM捆绑我的本地javascript文件。当我写命令

  "jspm bundle app/main build.js"

JSPM失败。正如JSPM试图在我的项目中找到angular2文件夹。我知道它检查config.js中定义的映射的原因。但我想知道如何克服这一点。因为我不想在我的本地项目中安装angular2文件,而且我绝对不想从我的服务器向客户端的浏览器提供angular2文件,我想使用CDN。

请帮忙。

2 个答案:

答案 0 :(得分:0)

如果你想同时构建和使用CDN(因为你配置了一些软件包从CDN 加载 SystemJS),你可以构建所有 CDN包。例如:

jspm bundle app/main.js - angular2 - whatever + somethingelse main-bundle.js --inject

否则,更简单,您可以将CDN链接直接放在index.html文件中,并仅将SystemJS用于本地包。

答案 1 :(得分:0)

最后我找到了答案:

System Js config选项也会获取元信息。在这个元信息中,我们可以编写忽略SystemJs的模块被捆绑。所以我要说我从cdn加载所有的angular2模块,在本地模块中导入它们然后用systemJs或JSPM构建它,然后我必须在config.js中写入以下内容(或者在System.config' s选项对象中) :

meta: {
        'angular2/*': {
            build: false
        },
        'rxjs/add/operator/map' : {
            build : false
        }
    }

这应该由angular2开发人员放在config.js中,以明确告诉systemJs在捆绑本地模块时避免查找angular2模块和rxjs模块。这将为您提供从cdn加载angular2和rxjs的机会,因此不会在config.js的map选项中包含它们。

相关问题