c# – Weyland构建因DurandalAuth 2.0.1而失败

一个非常壮观的例子,基于DurandalJS,ASP.NET MVC 5支持SPA:

https://durandalauth.azurewebsites.net/

但是,有一个问题是,Weyland驱动的优化失败,因为Visual Studio的Post-Build事件有如下所示的消息

这很奇怪,因为post build事件是这样的:

cd $(ProjectDir)
weyland build

从命令行执行时哪个工作正常:

为什么会这样?我在网上搜索,所有我一直在寻找的是一个类似的但是(可能)一个无关的问题,其中一个额外的配置行

"insertRequire: ['main'],"

[编辑]

我正在使用Visual Studio 2013 Pro Update 2,没有插件.

我使用这个url git克隆了GuraHub上DurandalAuth的最新项目:

git clone https://github.com/yagopv/DurandalAuth.git

你可以在这里看到这个项目:
https://github.com/yagopv/durandalauth

我在visual studio中的post-build事件中使用它:

cd $(ProjectDir)
weyland build

我的构建的输出可以在这个pastebin中找到:
http://pastebin.com/ezpTEPk7

从Git Clone中可以看出,我正在做的所有事情都没有对原始项目进行任何修改.

解决方法

当你查看你的构建输出时,你会发现几行

ERR! jshint Found 52 issues while linting ….

你也会找到像这样的行

WARN: Dropping unused ….

虽然这些不是关于执行的显示,但它们会导致构建返回失败.

这就是Visual Studio报告构建失败的原因.

编辑

我使用ReSharper做了一些重大的清理工作.

要完全忽略.js文件 – 您可以从weyland-config.js中删除.task.jshint

另外值得一提的是,你的main-built.js没有随着weyland-config.js的发布而变得丑陋.

在第一个.task.uglify中为App / mail-built.js添加一个排除项,并添加一个新的.task.uglify作为最后一个任务. main-built.js的这条路径必须以../开头,因为路径是相对于build文件夹的.

还发现web.config中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}',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']
    });
}

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...