JSPM与外部系统js文件捆绑
JSPM bundling with external system js file
我正在从 CDN 加载我的 angular2 文件作为系统 js 模块。
我有几个文件导入了angular2的各种系统js模块。
现在我想使用 JSPM 捆绑我的本地 javascript 文件。当我写命令时
"jspm bundle app/main build.js"
JSPM 失败。由于 JSPM 试图在我的项目中找到 angular2 文件夹。我知道它检查 config.js 中定义的地图的原因。但我想知道如何克服这个问题。因为我不想在本地项目中安装 angular2 文件,而且我绝对不想从我的服务器向客户端浏览器提供 angular2 文件,所以我想使用 CDN。
请帮忙。
如果你想同时构建和使用 CDN(因为你配置了一些包从 CDN 和 SystemJS 加载),你可以构建所有东西 但是 CDN 包。例如:
jspm bundle app/main.js - angular2 - whatever + somethingelse main-bundle.js --inject
否则,更简单,您可以将 CDN 链接直接放在您的 index.html 文件中,并仅将 SystemJS 用于本地包。
最后我找到了这样做的答案:
System Js 配置选项也有一个元信息。在此元信息中,我们可以编写以忽略 SystemJs 的模块被捆绑。所以假设我从 cdn 加载所有 angular2 模块,将它们导入本地模块,然后使用 systemJs 或 JSPM 构建它,那么我必须在 config.js(或 System.config 的选项中编写以下内容对象):
meta: {
'angular2/*': {
build: false
},
'rxjs/add/operator/map' : {
build : false
}
}
这应该由 angular2 开发人员放在 config.js 中,以明确告诉 systemJs 在捆绑本地模块时避免寻找 angular2 模块和 rxjs 模块。这将为您提供从 cdn 加载 angular2 和 rxjs 的机会,因此不将它们包含在 config.js.
的地图选项中
我正在从 CDN 加载我的 angular2 文件作为系统 js 模块。
我有几个文件导入了angular2的各种系统js模块。
现在我想使用 JSPM 捆绑我的本地 javascript 文件。当我写命令时
"jspm bundle app/main build.js"
JSPM 失败。由于 JSPM 试图在我的项目中找到 angular2 文件夹。我知道它检查 config.js 中定义的地图的原因。但我想知道如何克服这个问题。因为我不想在本地项目中安装 angular2 文件,而且我绝对不想从我的服务器向客户端浏览器提供 angular2 文件,所以我想使用 CDN。
请帮忙。
如果你想同时构建和使用 CDN(因为你配置了一些包从 CDN 和 SystemJS 加载),你可以构建所有东西 但是 CDN 包。例如:
jspm bundle app/main.js - angular2 - whatever + somethingelse main-bundle.js --inject
否则,更简单,您可以将 CDN 链接直接放在您的 index.html 文件中,并仅将 SystemJS 用于本地包。
最后我找到了这样做的答案:
System Js 配置选项也有一个元信息。在此元信息中,我们可以编写以忽略 SystemJs 的模块被捆绑。所以假设我从 cdn 加载所有 angular2 模块,将它们导入本地模块,然后使用 systemJs 或 JSPM 构建它,那么我必须在 config.js(或 System.config 的选项中编写以下内容对象):
meta: {
'angular2/*': {
build: false
},
'rxjs/add/operator/map' : {
build : false
}
}
这应该由 angular2 开发人员放在 config.js 中,以明确告诉 systemJs 在捆绑本地模块时避免寻找 angular2 模块和 rxjs 模块。这将为您提供从 cdn 加载 angular2 和 rxjs 的机会,因此不将它们包含在 config.js.
的地图选项中