0

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

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

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

  • 微风客户端:1.6.0
  • 系统js: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);
        });
});
4

1 回答 1

0

问题在于它breeze.debug.js包含核心微风文件和其中的所有适配器

解决方案是使用breeze.base.debug.js单独的适配器。

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

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

于 2016-12-30T11:59:59.727 回答