2016-09-25 48 views
0

我发现this(看似)相关的SO帖子,但根据回答didn'thelp的建议,我所有的js文件都被推送到Azure只是来自我的js文件夹的*.min.js文件)。排除.js,包括.min.js在发布到Azure时与VS 2015

我在做什么错?这可能吗?我可以更新我的gulp脚本,我想读取一个环境变量(“Development”或“Production”),然后有条件地删除源js文件。这似乎是更好的构建任务功能,因为我希望(尤其是因为它看起来可行)。

+0

这是ASP.Net核心还是ASP.Net MVC 5? – Win

+0

这是一个核心项目(MVC 6) –

回答

0

我结束了去吞气路线迄今(仍有兴趣,如果可行的其他办法。)

创建一个新的任务,我的gulpfile ...

var del = require("del"); 
gulp.task("remove-non-minjs", function() { 
    return del([ 
     paths.scripts.dest + "**/*.js", 
     "!" + paths.scripts.dest + "**/*.min.js" 
    ]); 
}); 

然后添加到我的project.json的预发布脚本...

"scripts": { 
    "prebuild": [ "gulp default" ], 
    "prepublish": [ "npm install", "gulp default", "gulp remove-non-minjs" ], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 

我验证了它的工作原理,但似乎是一个双哈克。

0

我的项目的Js文件在[解决方案文件夹] [项目文件夹] \ wwwroot \ js。

根据您提到的相关SO post中添加的评论,我认为您的应用程序基于ASP.NET Core。据我所知,我们可确定哪些文件/文件夹可列入或通过在project.json文件中配置publishOptions部分发布您的Web应用程序时排除如下:

"publishOptions": { 
    "include": [ 
    "wwwroot", 
    "wwwroot/js/**/*.min.js", 
    "Views", 
    "Areas/**/Views", 
    "appsettings.json", 
    "web.config" 
    ], 
    "exclude": [ 
    "wwwroot/js/**/*.js" 
    ] 
} 

但是,因为这tutorial提到排除模式具有比包含模式更高的优先级,因此在两个文件中找到的文件将被排除。在这种情况下,您需要配置publishOptions的includeFiles/excludeFiles节点中的所有包含/排除文件。

根据您的要求,Using Gulp将是实现它的理想方法。

此外,如果您的项目是ASP.NET MVC应用程序,则可以将以下内容添加到.pubxml文件中。

​​
+0

嗯,我试过你的后一个建议(pubxml编辑),无济于事。非min.js文件仍然存在。 我不确定我关注了publishOptions大道。你是说这应该工作吗?或者,你是否只是建议我调查另一个途径? –

+0

wwwroot和Views都是在包含中提及的(并且其所有内容都正在发布。)如何将更具体的路径添加到我想要发布的js文件会影响到这一点?然后,我需要指定所有其他路径(不仅仅依靠列出的父级?) –

0

这似乎做的伎俩对我来说:

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/advanced-enterprise-web-deployment/excluding-files-and-folders-from-deployment

通过Solution Explorer中,您可以编辑每一个文件的属性,在您的项目,并设置生成操作为NONE。看起来您可能一次选择多个文件。

+0

您是否介意总结您提供的链接?为了防止你的答案失去价值,如果链接中断和社区的便利? – DarkCygnus

+0

@Dark除了我在回答中已经总结的内容(链接下方)之外,其实并没有太多其他内容。我理解链接腐烂的问题,但这是链接到Microsoft.com上的技术文档 - 而不仅仅是一个随机站点。他们通常会尝试固定这些东西... –

+0

没关系,这并不是说你的答案是错误的,但它不仅仅是一个可能的断开或老化的链接。问题是,SE网络应该记录下来并且自我解释,因此人们不必去搜索其他地方的其他资源或信息(因此会浪费时间等)。有些人可能无法访问外部网络,也无法通过某个应用访问它,这就是为什么最好尽可能多地写下你分享的链接的相关部分。 – DarkCygnus