選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
1 分鐘閱讀時間 (105 個字)

webgrease minify 小地雷

webgrease minify 小地雷

 Webgrease Minify 是 ASP.NET MVC的CSS/JS打包壓縮功能

公文系統遇到一個雷
花上同仁很多時間找出問題點
值得紀錄

問題發生在正式環境上
因為debug模式下
js不會壓縮
所以並沒有發生問題
但經過js壓縮之後
許多變數都被簡化成a,b,c,d,e
於是在minify程式的編譯之下
發生了原本應該是在小scope裡的變數被提升到大scope裡去
而把大scope裡的變數取代掉了

EX:

if (condition) {
    function A() {
    }
} 

遇到這樣寫法的時候會把A提升至scope為local變數,
minify時變數名稱是以a,b,c,d.....流水下去命名,
若很不幸變數較多且原closure內有一樣的變數名稱,
就會被蓋過去造成執行階段的錯誤(可能minify時在改變數名稱的時候漏掉這個情境排除的判斷)
目前測試最簡單的改法為

if (condition) {
    var A = function () {
    }
} 

就能解決這個問題

[安裝程式] NSIS - 基礎使用教學
AspNetBoilerplate(ABP) - Authorization 與 Menu 動態篇

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2025/05/08, 週四

Captcha 圖像