我正在尝试构建我的Angular 2&通过gulpfile使用SystemJS Build工具的BreezeJS应用程序。
但是,当我尝试执行构建任务时,出现Multiple anonymous defines
错误。
另一方面,如果我通过直接将system.js
和systemjs.config.js
添加到我的页面来运行应用程序,则它可以正常运行。
那么,这个错误究竟意味着什么,是否可以使用systemjs-builder构建我的应用程序?
systemjs.config.js
(function (global) {
"use strict";
System.config({
defaultJSExtensions: true,
paths: {
"npm:": "node_modules/"
},
map: {
"app": "app/main",
"@angular/core": "npm:@angular/core/bundles/core.umd",
"@angular/common": "npm:@angular/common/bundles/common.umd",
"@angular/compiler": "npm:@angular/compiler/bundles/compiler.umd",
"@angular/http": "npm:@angular/http/bundles/http.umd",
"@angular/platform-browser": "npm:@angular/platform-browser/bundles/platform-browser.umd",
"@angular/platform-browser-dynamic": "npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd",
"rxjs": "npm:rxjs",
"datajs": "npm:datajs/index",
"breeze-client": "npm:breeze-client/breeze.debug",
"breeze-bridge-angular2": "npm:breeze-bridge-angular2/index",
}
});
})(this);
gulpfile.js
"use strict";
var gulp = require("gulp");
gulp.task("build", function () {
var Builder = require("systemjs-builder");
var builder = new Builder("", "./systemjs.config.js");
return builder.buildStatic("app", "./app/app.js", { encodeNames: false })
.catch(function (error) {
console.log("error", error);
});
});
答案 0 :(得分:0)
问题是breeze.debug.js
包含核心breeze文件和其中的所有适配器。
解决方案是使用breeze.base.debug.js
和不同的适配器。
一个重要的区别是您需要向应用程序显式导入其他适配器,我相信这样做的理想位置是entity manager
。
这是一个工作示例。它还包含使用build-breeze.debug
且breeze.debug.js
错误失败的Multiple anonymous defines
任务。
https://github.com/forCrowd/Labs-BreezeJS-SystemJSBuilder