我發現this(看似)相關的SO帖子,但根據回答didn'thelp的建議,我所有的js文件都被推送到Azure只是來自我的js文件夾的*.min.js
文件)。排除.js,包括.min.js在發佈到Azure時與VS 2015
我在做什麼錯?這可能嗎?我可以更新我的gulp腳本,我想讀取一個環境變量(「Development」或「Production」),然後有條件地刪除源js文件。這似乎是更好的構建任務功能,因爲我希望(尤其是因爲它看起來可行)。
我發現this(看似)相關的SO帖子,但根據回答didn'thelp的建議,我所有的js文件都被推送到Azure只是來自我的js文件夾的*.min.js
文件)。排除.js,包括.min.js在發佈到Azure時與VS 2015
我在做什麼錯?這可能嗎?我可以更新我的gulp腳本,我想讀取一個環境變量(「Development」或「Production」),然後有條件地刪除源js文件。這似乎是更好的構建任務功能,因爲我希望(尤其是因爲它看起來可行)。
我結束了去吞氣路線迄今(仍有興趣,如果可行的其他辦法。)
創建一個新的任務,我的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%" ]
}
我驗證了它的工作原理,但似乎是一個雙哈克。
我的項目的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文件中。
嗯,我試過你的後一個建議(pubxml編輯),無濟於事。非min.js文件仍然存在。 我不確定我關注了publishOptions大道。你是說這應該工作嗎?或者,你是否只是建議我調查另一個途徑? –
wwwroot和Views都是在包含中提及的(並且其所有內容都正在發佈。)如何將更具體的路徑添加到我想要發佈的js文件會影響到這一點?然後,我需要指定所有其他路徑(不僅僅依靠列出的父級?) –
這似乎做的伎倆對我來說:
通過Solution Explorer中,您可以編輯每一個文件的屬性,在您的項目,並設置生成操作爲NONE。看起來您可能一次選擇多個文件。
您是否介意總結您提供的鏈接?爲了防止你的答案失去價值,如果鏈接中斷和社區的便利? – DarkCygnus
@Dark除了我在回答中已經總結的內容(鏈接下方)之外,其實並沒有太多其他內容。我理解鏈接腐爛的問題,但這是鏈接到Microsoft.com上的技術文檔 - 而不僅僅是一個隨機站點。他們通常會嘗試固定這些東西... –
沒關係,這並不是說你的答案是錯誤的,但它不僅僅是一個可能的斷開或老化的鏈接。問題是,SE網絡應該記錄下來並且自我解釋,因此人們不必去搜索其他地方的其他資源或信息(因此會浪費時間等)。有些人可能無法訪問外部網絡,也無法通過某個應用訪問它,這就是爲什麼最好儘可能多地寫下你分享的鏈接的相關部分。 – DarkCygnus
這是ASP.Net核心還是ASP.Net MVC 5? – Win
這是一個核心項目(MVC 6) –