[英]Is there a way to use different environment profiles for development and production setting for Cordova app based on Ionic Framework
[英]Setting development environment flag and eliminating debug code when deploying to production
使用Web應用程序時,我經常使用專為生產/服務器和本地環境設計的代碼。
我還經常需要停用特定的功能(即js,ruby,rails,java等)。
我面臨的問題是,有時在發布新版本時我會錯過激活或取消激活這些功能。
理想的事情(我認為)就是在部署到服務器之前運行你喜歡的on / off功能。 所以你不要錯過任何東西。
例。
我在開發時注釋掉了一個函數。
JS:
// foobar() FOR PRODUCTION
Ruby On Rails(production.rb):
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # FOR PRODUCTION
后者,當我需要使用生產設置測試本地的東西,但因為我沒有安裝特定的環境(nginx,appache)我不能使用它的功能。
我使用Sublime Text 2,3,如果它有一個定義要取消注釋/評論的特定功能/代碼塊的功能,那將會很棒。
你怎么工作所以你不會錯過任何東西?
這個問題並非特定於Sublime Text或任何文本編輯器,而是一個如何預處理和調試(JavaScript)源代碼的一般性問題。
首先,最簡單的方法是在代碼庫中使用某種全局調試標志。
window.DEBUG = true;
function log(a, b, c, d) {
if(DEBUG) {
console.log(a, b, c, d);
}
}
if(DEBUG) {
// Do dev stuff
} else {
// Do produection stuff
}
log("foobar") // Does not need to be wrapper, as log() itself is functional only in debug mode
您可以根據您的URL設置調試標志:
if(window.location.href.indexOf("localhost") >= 0) {
window.DEBUG = true;
}
將JavaScript部署到生產環境時,通常通過最小化和捆綁工具來運行它。 一個流行的工具是UglifyJS 2,其特點是不斷消除 。 使用此工具運行和部署JavaScript代碼時, if(DEBUG) { }
部分代碼被刪除。
您可以使用Project> Build scripts將任何工具連接到Sublime Text。
對於服務器端代碼,您只需根據您的環境設置調試標志。 每個框架(Ruby on rails)都有自己的方法,您需要在框架特定問題中詢問具體細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.