20211127

遇到老 bug

整個一團霧水,完全不知道怎麼解...

最近是和別人合作的,昨天在把我的 code 整合到別人的環境裡。有一隻被引用的 ts 長這樣:

// func.ts
const obj1 = {
    abc: `<h1>ABC</h1>`,
    def: `<h2>DEF</h2>`,
};

const obj2 = `<section class="section-1">總共</section>`;

用 webpack build 的時候一直跳錯誤,雖然最近我用的是 rollup, 自己 build 起來是沒問題的。我再拿到舊一點專案使用 webpack 去跑也是可以,就是搬到新環境出事。然後還麻煩對方 RD 幫我看,結果兩小時過去我們都沒找到問題點。

老闆這時候本來是要來討論,後來就幫我看問題。原先 obj2 裡字串很長的,後來刪減到就是這一行出問題,而且是「總」這個字有問題,這時候就想到是不是中文字編碼的事。可是我這一隻檔案就是從原先 rollup 那個地方複製到新環境的,沒理由我原本可以後來不行。看編碼,原先檔案編碼確定是 UTF-8, 但是開筆記本、notepad++ 都說那隻檔案後來的編碼是 ANSI...

原本檔案用 VS Code 寫、儲存的,只是新環境對方來教我的時候是講 VS 2022, 所以這隻檔案被搬到 VS 2022 儲存過就變編碼了... 老闆幫忙查了,找到兩篇:

  1. 【茶包射手日記】VS2015程式檔編碼問題
  2. VS2015程式檔BIG5相容問題快速解法-修改csproj/vbproj

最後強迫用筆記本幫我換編碼,結束這個下午。

VS 2022 實在用的很不順手,我再三確定存檔了,結果 webpack build 出來的還是舊檔案 (都有 clean 過啊) ,我預期 build 完的 js 會是含新的字串進去的,可是還是舊的 cached 的字串,最後是把 VS 2022 關掉重開,確定有包進新字串了,也不知道哪裡有誤。最後大結論:人生好難...

0 comments:

張貼留言