Angular 2& BreezeJS& SystemJS Build - 多个匿名定义

时间:2016-12-30 12:00:00

标签: angular breeze systemjs-builder

我正在尝试构建我的Angular 2&通过gulpfile使用SystemJS Build工具的BreezeJS应用程序。 但是,当我尝试执行构建任务时,出现Multiple anonymous defines错误。

另一方面,如果我通过直接将system.jssystemjs.config.js添加到我的页面来运行应用程序,则它可以正常运行。

那么,这个错误究竟意味着什么,是否可以使用systemjs-builder构建我的应用程序?

  • breeze-client:1.6.0
  • systemjs:0.19.41
  • systemjs-builder:0.15.34

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);
        });
});

1 个答案:

答案 0 :(得分:0)

问题是breeze.debug.js包含核心breeze文件和其中的所有适配器

解决方案是使用breeze.base.debug.js和不同的适配器。

一个重要的区别是您需要向应用程序显式导入其他适配器,我相信这样做的理想位置是entity manager

这是一个工作示例。它还包含使用build-breeze.debugbreeze.debug.js错误失败的Multiple anonymous defines任务。 https://github.com/forCrowd/Labs-BreezeJS-SystemJSBuilder