Requirejs Durandal.js优化器生成空的main-build.js

Requirejs Durandal.js优化器生成空的main-build.js,requirejs,durandal,Requirejs,Durandal,我正在尝试,但是main-build.js是空白的 我曾尝试运行node r.js-o app.build.js,但出现了一个错误,表示找不到文件。我在main.js文件中添加了这些路径,每个错误都消失了。但是,现在,上面的命令只带跟踪依赖项退出:durnadal/amd/almond.custom,文件仍然为空 问题:哪些库需要进入下面的路径?对于我在index.html中使用的外部库,它似乎需要确切的文件名 require.config({ paths: { "tex

我正在尝试,但是main-build.js是空白的

我曾尝试运行node r.js-o app.build.js,但出现了一个错误,表示找不到文件。我在main.js文件中添加了这些路径,每个错误都消失了。但是,现在,上面的命令只带跟踪依赖项退出:durnadal/amd/almond.custom,文件仍然为空

问题:哪些库需要进入下面的路径?对于我在index.html中使用的外部库,它似乎需要确切的文件名

require.config({
    paths: {
        "text": "durandal/amd/text",
        "breeze": "lib/breeze/breeze.min",
        "knockout": "lib/knockout/knockout.mapping-latest",
    }
});
当我在Durandal AMD文件夹中运行Optimizer.exe时,main-build.js为空。这是生成的app.build.js文件-任何关于如何使用Almond获得更详细日志的帮助都值得赞赏。我尝试过优化器-详细的true,但运气不佳

{
  "name": "durandal/amd/almond-custom",
  "inlineText": true,
  "stubModules": [
    "durandal/amd/text"
  ],
  "paths": {
    "text": "durandal/amd/text"
  },
  "baseUrl": "C:\\DNNDev.me\\DesktopModules\\Framework.App\\App",
  "mainConfigFile": "C:\\DNNDev.me\\DesktopModules\\Framework.App\\App\\main.js",
  "include": [
    "text!about.html",
    "about",
    "appNavigation",
    "config",
    "text!dareAdd.html",
    "dareAdd",
    "text!dareDetail.html",
    "dareDetail",
    "text!dareList.html",
    "dareList",
    "text!dareListItem.html",
    "dataContext",
    "dataService",
    "dataServiceHelper",
    "enums",
    "errorWatcher",
    "text!home.html",
    "home",
    "text!index.html",
    "text!indextopcoat.html",
    "indextopcoat",
    "text!kendoIndex.html",
    "text!loader.html",
    "logger",
    "text!login.html",
    "login",
    "main-built",
    "main",
    "text!menu.html",
    "model",
    "text!navbar.html",
    "text!notifyOfError.html",
    "notifyOfError",
    "text!privacy.html",
    "privacy",
    "text!profile.html",
    "profile",
    "text!shell.html",
    "shell",
    "text!signup.html",
    "signup",
    "text!testpage.html",
    "testpage",
    "uiutilities",
    "userState",
    "viewModelHelper",
    "text!walkthrough.html",
    "walkthrough",
    "widgetService",
    "css/telerik/js/kendo.dataviz.min",
    "css/topcoat/js/hello",
    "css/topcoat/js/hello.min",
    "css/topcoat/js/index",
    "css/topcoat/lib/hello",
    "css/topcoat/lib/vendor/ender.min",
    "css/topcoat/lib/vendor/fastclick",
    "durandal/app",
    "durandal/composition",
    "durandal/events",
    "durandal/http",
    "text!durandal/messageBox.html",
    "durandal/messageBox",
    "durandal/modalDialog",
    "durandal/system",
    "durandal/viewEngine",
    "durandal/viewLocator",
    "durandal/viewModel",
    "durandal/viewModelBinder",
    "durandal/widget",
    "durandal/plugins/router",
    "durandal/transitions/entrance",
    "js/cordova",
    "js/facebookscript",
    "lib/bootstrap/bootstrap",
    "lib/bootstrap/bootstrap.min",
    "lib/breeze/breeze.debug",
    "lib/breeze/breeze.intellisense",
    "lib/breeze/breeze.min",
    "lib/breeze/q",
    "lib/breeze/q.min",
    "lib/jquery/jquery-2.0.3.intellisense",
    "lib/jquery/jquery-2.0.3",
    "lib/jquery/jquery-2.0.3.min",
    "lib/knockout/knockout-2.3.0.debug",
    "lib/knockout/knockout-2.3.0",
    "lib/knockout/knockout.mapping-latest.debug",
    "lib/knockout/knockout.mapping-latest",
    "lib/knockout/knockout.validation.debug",
    "lib/knockout/knockout.validation",
    "lib/moment/moment",
    "lib/moment/moment.min",
    "lib/ratchet/ratchet",
    "lib/sammy/sammy-0.7.4",
    "lib/sammy/sammy-0.7.4.min",
    "lib/toastr/toastr",
    "lib/toastr/toastr.min"
  ],
  "exclude": [],
  "keepBuildDir": true,
  "optimize": "uglify2",
  "out": "C:\\DNNDev.me\\DesktopModules\\Framework.App\\App\\main-built.js",
  "pragmas": {
    "build": true
  },
  "wrap": true,
  "insertRequire": [
    "main"
  ]
}

在您的路径中,您将引用设置为等于映射插件的knockout,这不是bueno

如这个答案所示,您可以像Rainer shows一样运行它,您应该会看到一个更具体的错误

我发现一件事——如果你删除视图模型或使用文件夹或目录作为即将被删除的炼狱,这些文件可能不会在你的应用程序中使用,但如果它们在文件结构中,优化器仍会对它们进行评估

编辑

查看此处了解有关优化器的更多信息-

另外,您是在构建调试版还是发布版?你的目标是正确的吗

另外,如果您引用的是Knockout.js,我想您的意思是引用lib/Knockout/Knockout-2.3.0,而不是Knockout映射插件

除非我遗漏了一些东西,否则您不应该将这些路径添加到main.js文件中。Breeze和Knockout应该已经被引用了。根据您的项目类型、编辑器等。。。它可能捆绑在您的App.Start文件夹中的DurandalBundleConfig下。如果不是,那么您只是从index.html引用库吗

如果是这样的情况,请将它们移动到bundle配置中-

  bundles.Add(
    new ScriptBundle("~/scripts/vendor")
      .Include("~/Scripts/jquery-{version}.js")
      .Include("~/Scripts/jquery-ui-{version}.min.js")
      .Include("~/Scripts/knockout-{version}.js")
      .Include("~/Scripts/sammy-{version}.js")
      .Include("~/Scripts/bootstrap.min.js")
      .Include("~/Scripts/knockout-bootstrap.min.js")
      .Include("~/Scripts/Q.js")
      .Include("~/Scripts/breeze.debug.js")
    );

请注意,您需要在Breeze之前加载Q,因为Breeze依赖于Q。

Hmm-请参阅我问题的顶部-我已经尝试过并解决了一些问题,但没有更多错误消息。。。还有其他建议吗?你在哪里加载Breeze和Knockout并引用它们?感谢你的帮助-我没有使用MVC-这是一个使用Durandal ie的独立PhoneGap应用程序。没有捆绑包。Knockout、Toastr和Breeze都是直接在index.html中注册的,对吗?我不是PhoneGap专家,但看起来您仍然将Knockout映射注册为Knockout,而不是基本库。