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