我正在从CDN加载我的angular2文件作为System js模块。
我有几个文件可以导入angular2的各种系统js模块。
现在我想使用JSPM捆绑我的本地javascript文件。当我写命令
"jspm bundle app/main build.js"
JSPM失败。正如JSPM试图在我的项目中找到angular2文件夹。我知道它检查config.js中定义的映射的原因。但我想知道如何克服这一点。因为我不想在我的本地项目中安装angular2文件,而且我绝对不想从我的服务器向客户端的浏览器提供angular2文件,我想使用CDN。
请帮忙。
答案 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选项中包含它们。