C# DurandalAuth 2.0.1的Weyland构建失败
有一个非常壮观的例子,基于DurandalJS的ASP.NET MVC 5支持SPA,位于: 不过,它有一个问题,就是Weyland驱动的优化在Visual Studio的构建后事件中失败,并显示如下消息 这很奇怪,因为生成后事件是这样的:C# DurandalAuth 2.0.1的Weyland构建失败,c#,asp.net,visual-studio,durandal-2.0,weyland,C#,Asp.net,Visual Studio,Durandal 2.0,Weyland,有一个非常壮观的例子,基于DurandalJS的ASP.NET MVC 5支持SPA,位于: 不过,它有一个问题,就是Weyland驱动的优化在Visual Studio的构建后事件中失败,并显示如下消息 这很奇怪,因为生成后事件是这样的: cd $(ProjectDir) weyland build 当从命令行执行时,其工作正常: 为什么会这样?我已经在网上搜索过了,我一直在寻找一个类似但(也许)不相关的问题的引用,其中有一行额外的配置 "insertRequire: ['main']
cd $(ProjectDir)
weyland build
当从命令行执行时,其工作正常:
为什么会这样?我已经在网上搜索过了,我一直在寻找一个类似但(也许)不相关的问题的引用,其中有一行额外的配置
"insertRequire: ['main'],"
[编辑]
我使用的是Visual Studio 2013 Pro Update 2,没有插件
我使用以下url从GitHub上的DurandalAuth克隆了最新项目:
git clone https://github.com/yagopv/DurandalAuth.git
您可以在此处看到该项目:
我在visual studio中的生成后事件中使用了此选项:
cd $(ProjectDir)
weyland build
我的构建输出可在此粘贴站找到:
我所做的每件事都没有对原始项目进行任何修改,就像从Git克隆中看到的一样。当您查看构建输出时,您会发现以下几行代码 呃!jshint在linting时发现52个问题 你也会发现像这样的线条 警告:正在删除未使用的 虽然这些不是关于执行的showtopper,但它们会导致构建返回失败 这就是VisualStudio报告生成失败的原因 编辑 我用ReSharper做了一些大的清理 要完全忽略.js文件,可以从weyland-config.js中删除.task.jshint 还要提到的是,您的main-build.js并没有因为附带的weyland-config.js而变得丑陋 在第一个.task.uglify中,为App/mail-build.js添加一个排除项,并添加一个新的.task.uglify作为最后一个任务。main-build.js的路径必须以../作为前缀,因为该路径是相对于生成文件夹的 在web.config中的when debug=false中也发现了问题,但尚未解决该问题 我的weyland-config.js如下所示:
exports.config = function(weyland) {
weyland.build('main')
.task.jshint({
include: 'App/**/*.js',
exclude: 'App/main-built.js'
})
.task.uglifyjs({
include: ['App/**/*.js', 'Scripts/durandal/**/*.js'],
exclude: 'App/main-built.js'
})
.task.rjs({
include:['App/**/*.{js,html}', 'Scripts/durandal/**/*.js'],
loaderPluginExtensionMaps:{
'.html':'text'
},
rjs: {
name:'../Scripts/almond-custom', //to deploy with require.js, use the build's name here instead
insertRequire: ['main'], //not needed for require
baseUrl: 'App',
wrap:true, //not needed for require
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'knockout': '../Scripts/knockout-3.1.0',
'bootstrap': '../Scripts/bootstrap',
'jquery': '../Scripts/jquery-2.1.1',
'jquery.utilities': '../Scripts/jquery.utilities',
'toastr': '../Scripts/toastr',
'stashy': '../Scripts/stashy'
},
inlineText: true,
optimize: 'none',
pragmas: {
build: true
},
stubModules: ['text'],
keepBuildDir: true,
out:'App/main-built.js'
}
})
.task.uglifyjs({
include: ['../App/main-built.js']
});
}
您使用的是哪个版本的visual studio?当后期生成步骤失败时,生成输出(来自visual studio的“输出”选项卡)中列出了什么?看起来它将两行代码视为一个调用。当你在VisualStudio中查看项目属性时,它是否会在不同的行上显示它们?那么,我们怎么能将该特定消息视为失败呢?我的构建环境是自动化的,构建失败会阻止部署。很遗憾,很久以前我在这个问题上得到100个代表的赏金时,你不在。最后,我从System.Web.Optimization构建了自己的包,这基本上就是Weyland所做的。我会看看我能为这条消息做些什么。